Mod重写和动态URL

时间:2014-07-09 22:20:56

标签: php apache .htaccess mod-rewrite url-rewriting

我知道这是一个常见问题,但我无法想出这个问题。

我有以下网址:

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]

感谢。

3 个答案:

答案 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]