如何从 htaccess 中的重写规则中排除主 directory/home 页面?
How to exclude main directory/home page from rewriting rule in htaccess?
我不知道如何将主页排除在重写之外。
换句话说,.htaccess 将 "example.com" 视为 "example.com/user/index.php?name=",因此它显示用户特定的内容而不是我的主页。我已经尝试了很多东西,但没有任何效果像我预期的那样。
RewriteEngine on
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^about/([A-Za-z0-9-]+)/?$ /about/index.php?p= [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %{REQUEST_URI} !^/login/?$ [NC]
RewriteCond %{REQUEST_URI} !^/register/?$ [NC]
RewriteCond %{REQUEST_URI} !^/about/?$ [NC]
RewriteRule ^([A-Za-z0-9.]+)/?$ /user/index.php?name= [L]
希望你们明白我的问题是什么。
规则看起来不错,正则表达式中的 +
限定符应该符合要求,这样它就不会只匹配 /
请求。您可以尝试在 RewriteEngine On
下方添加此内容
RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)($|\ )
RewriteRule ^ - [L]
我不知道如何将主页排除在重写之外。 换句话说,.htaccess 将 "example.com" 视为 "example.com/user/index.php?name=",因此它显示用户特定的内容而不是我的主页。我已经尝试了很多东西,但没有任何效果像我预期的那样。
RewriteEngine on
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^about/([A-Za-z0-9-]+)/?$ /about/index.php?p= [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %{REQUEST_URI} !^/login/?$ [NC]
RewriteCond %{REQUEST_URI} !^/register/?$ [NC]
RewriteCond %{REQUEST_URI} !^/about/?$ [NC]
RewriteRule ^([A-Za-z0-9.]+)/?$ /user/index.php?name= [L]
希望你们明白我的问题是什么。
规则看起来不错,正则表达式中的 +
限定符应该符合要求,这样它就不会只匹配 /
请求。您可以尝试在 RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)($|\ )
RewriteRule ^ - [L]