Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess在同一目录中重写多个URL_Php_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

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

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

我想重写一些URL,但因为我是一个.htaccessnoob,我不知道如何自己制作

到目前为止,我已经:
示例(.)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/是真实目录