.htaccess在同一目录中重写多个URL

时间:2014-08-26 13:19:57

标签: php regex apache .htaccess mod-rewrite

我想重写一些网址,但因为我是一个.htaccess noob,我不知道如何自己制作。

到目前为止,我有: 转到example(.)com/server/SERVERNAME

example(.)com/server/index.php?server=SERVERNAME

为此,我使用:

RewriteBase /server/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?server=$1 [L]

但从这一点来说,我被困住了。 我希望example(.)com/server/SERVERNAME/vote/转到example(.)com/server/vote.php?server=SERVERNAME

这可能听起来很奇怪或令人困惑,但我不知道它是否可能。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您似乎缺少RewriteEngine On,并且还需要多个规则来检查.php中是否存在匹配的/server/文件。

将此规则放在/server/.htaccess

RewriteEngine On

RewriteBase /server/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/server/$2\.php -f [NC]
RewriteRule ^([^/]+)/([^/]+)/?$ $2.php?server=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?server=$1 [L,QSA]