我很新为.htaccess,有一个问题..
我将如何改写
http://example.com/forums/view.php?v=Topic%20Name&a=64
到http://example.com/forums/view/Topic-Name/64
?
如上所述,我是新来的..
另外,我怎么会取代-
与
同时保持正常的破折号?
例如: Hi There-Bye!
然后将转换成Hi-There-Bye!
然后将转换回Hi There-Bye!
用php and .htaccess
?
第一个问题是非常基本的。 您需要从“丑”(但工作)网址到搜索引擎优化的网址,并从搜索引擎优化的URL的“丑” URL内部重写一个外部重定向。 它们都可以写成如下格式:
#External redirect
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /forums/view\.php\?v=([^&]+)&a=(.+)\ HTTP
RewriteRule ^ /forums/view/%1/%2 [R,L]
#Change above [R,L] to [R=301,L] after testing all rules work as expected
#Internal rewrite
RewriteRule ^forums/view/([^/]+)/([^/]+)/?$ /forums/view.php?v=$1&a=$2 [L]
第二件事情是不可能的。 有没有办法之间的破折号之间的区别Hi
和There
之间的破折号There
和Bye
。 我会说:不要打扰。 这是一个搜索引擎优化的URL。 如果你想有看中搜索引擎优化的URL,你必须改变你的数据库中包含那些花哨的搜索引擎优化的URL。
重写使用以下方法。
RewriteRule ^example/(.*)\.html$ example/test.php?param=$1
RewriteRule ^forums/view/([^/]*)/([^/]*)$ /forums/view.php?v=$1&a=$2 [L]