Php .htaccess在同一目录中重写多个URL
我想重写一些URL,但因为我是一个.htaccessnoob,我不知道如何自己制作 到目前为止,我已经:Php .htaccess在同一目录中重写多个URL,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我想重写一些URL,但因为我是一个.htaccessnoob,我不知道如何自己制作 到目前为止,我已经: 示例(.)com/server/SERVERNAME转到示例(.)com/server/index.php?server=SERVERNAME 为此,我使用: RewriteBase /server/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)$ in
示例(.)com/server/SERVERNAME
转到示例(.)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
这听起来可能很奇怪或令人困惑,但我不知道这是否可能。
任何帮助都将不胜感激。您似乎缺少上的重写引擎,而且您需要不止一条规则来检查
.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]
/server/
是真实目录吗?@anubhava是的,/server/是真实目录