Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 在不改变当前重写的情况下重写URL-2变量_Php_Apache_Mod Rewrite - Fatal编程技术网

Php 在不改变当前重写的情况下重写URL-2变量

Php 在不改变当前重写的情况下重写URL-2变量,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我已经完成了我需要完成的大部分重写,但我无法让第二部分使用2个变量,以下是我的代码: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ entity.php?vanityName=$1 [L] RewriteCond %{REQUEST_FILENAME}

我已经完成了我需要完成的大部分重写,但我无法让第二部分使用2个变量,以下是我的代码:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ entity.php?vanityName=$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]*)/([^/]*)$ /entity.php?vanityName=$1&section=$2 [L]
例如,最后一位需要允许,但它不传递section变量。 如何在保留当前重写的同时修复此问题


如何获得它,使其适用于/vanityName、/vanityName/节,但允许我保持其他目录不被重写,如/include/?

您可以为不想重写的每个目录添加额外规则:

RewriteRule directoryName/? - [L]

如果在RewriteBase/之后直接编写这些规则,则不会检查其他规则。

您知道第二条规则更具体,第一条规则是全局规则。因为全局规则或者更好的说法是:将更一般的规则放在第一位,则永远不会执行更具体的规则。结论:您的htaccess将只运行到第5行,不会再运行。谢谢,我真的不知道mod_rewrite,这是我第一次使用它: