我知道这是一个常见问题,但我无法想出这个问题。
我有以下网址:
http://buildsanctuary.com/viewbuild.php?id=3&title=this_is_a_title&page=1
我希望的URL是:
http://buildsanctuary.com/viewbuild/3/this_is_a_title/1
通常对于mod重写,我会将用户发送到我想要的链接,让htaccess完成所有工作。
所以在这种情况下,我尝试将用户链接到首选的URL样式并重写URL但无济于事。
有关我应如何处理此问题的任何帮助?我想将用户发送到优先URL但是我可以使用htaccess来允许我以与普通动态URL相同的方式处理页面和URL $ _GET信息吗?
我已经尝试过mod重写生成器等,但没有任何作用。
这就是一族人给我的:
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.php$ /viewbuild.php?id=$1&title=$2&page=$3 [L]
感谢。
答案 0 :(得分:0)
修复生成器规则:
RewriteRule ^viewbuild/([^/]*)/([^/]*)/([^/]*)\.php$ /viewbuild.php?id=$1&title=$2&page=$3 [L,QSA]
但是,我会这样做:
RewriteRule ^([^/]*)/(.*) /$1.php/$2 [L]
然后将您在$_SERVER['PATH_INFO']
中获得的内容映射到PHP中的首选项。
答案 1 :(得分:0)
将此代码放入DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$1.php?id=$2&title=$3&page=$4 [L,QSA]
答案 2 :(得分:0)
应该做的伎俩
^ viewbuild /([0-9] +)/([a-z _] +)/ - ([0-9] +)/?$ viewbuild.php?id = $ 1& title = $ 2& page = $ 3 [NC,L]