mod_rewrite将目录更改为变量

时间:2011-12-14 18:59:49

标签: apache mod-rewrite

不会抱怨mod_rewrite,但正则表达式让我看到了侧面。

好我如何为此做mod_rewrite:

http://domain.com/version1/pg/[VAR]/

为:

http://domain.com/version1/page.php?page=[VAR]

我整天都在圈子里。

3 个答案:

答案 0 :(得分:1)

这应该有效:

RewriteEngine On
RewriteRule ^version1/pg/([^/]*)$ /version1/page.php?page=$1 [L]

基本上,它会将version1/pg/[VAR]重定向到/version1/page.php?page=[VAR]

我希望这会有所帮助。

答案 1 :(得分:1)

这应该有效:

RewriteEngine On
RewriteRule ^version1/pg/([^/]*)$ /version1/page.php?page=$1 [QSA,L]

告诉我这是否有效。

两个提示:


请尝试使用RewriteLog指令:它可以帮助您找出此类问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

我最喜欢检查regexp的工具:

http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)

我可以请你在你的问题中添加重写吗?

答案 2 :(得分:0)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^pg/([^/]*)$ page.php?page=$1 [QSA,L]
RewriteRule ^pg/([^/]*)/$ page.php?page=$1 [QSA,L]
</IfModule>

因此,如果网址为: mywebsite.com/version1/pg/sample /

<强> mywebsite.com/version1/pg/sample

它会将URL重写为:

<强> mywebsite.com/version1/page.php?page=sample