Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 Mod rewrite规则没有';行不通_Php_.htaccess_Mod Rewrite_Rule - Fatal编程技术网

Php Mod rewrite规则没有';行不通

Php Mod rewrite规则没有';行不通,php,.htaccess,mod-rewrite,rule,Php,.htaccess,Mod Rewrite,Rule,我正在使用mod rewrite,但我的代码不起作用。它曾一度奏效。 我已经删除了密码 .htaccess PHP 如果我转到index.php,它会显示NULL 我不明白为什么它不再工作了。我希望你能帮助我 另外,我已经通过使用.htaccess创建登录表单来测试是否加载了.htaccess文件。您需要删除规则中的第一个斜杠 RewriteEngine On RewriteBase / RewriteRule ^(.*)/$ index.php?test=$1 您需要去掉第一个斜杠:

我正在使用mod rewrite,但我的代码不起作用。它曾一度奏效。 我已经删除了密码

.htaccess

PHP


如果我转到
index.php
,它会显示
NULL

我不明白为什么它不再工作了。我希望你能帮助我


另外,我已经通过使用.htaccess创建登录表单来测试是否加载了.htaccess文件。

您需要删除规则中的第一个斜杠

RewriteEngine On 
RewriteBase / 
RewriteRule ^(.*)/$ index.php?test=$1

您需要去掉第一个斜杠:

RewriteRule ^(.*)/$ index.php?test=$1
即使如此,您的规则也仅在输入以正斜杠结尾的url时适用,例如:

/index.php/
如果希望它与任何url一起使用,还需要删除最后一个斜杠:

RewriteRule ^(.*)$ index.php?test=$1
编辑:为避免重写现有文件和目录,需要添加一些条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?test=$1

Thx,这起作用了!但我还有一个问题。在index.php文件中,我有一个指向样式表的链接,但该链接也被重写了。即使我使用asbolute URL。
RewriteRule ^(.*)$ index.php?test=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?test=$1