正在.htaccess上覆盖的规则
我正在尝试使用正在.htaccess上覆盖的规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试使用.htaccess创建一些规则: 我想: blog/[特定页面标题]:应该是src/components/blog/index.php的掩码 [类别]/[特定模块url]:应该是/index.php [特定模块url]:应该是/index.php .htaccess文件内容为: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # RULES FOR
.htaccess
创建一些规则:
我想:
[特定页面标题]:应该是blog/
src/components/blog/index.php的掩码
- [类别]/[特定模块url]:应该是
/index.php
- [特定模块url]:应该是
/index.php
.htaccess
文件内容为:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RULES FOR BLOG
RewriteRule blog/(.+)$ ./src/components/blog/index.php?url=$1 [L,QSA,NC]
# RULES FOR LANDING PAGE
RewriteRule ([a-z\-_0-9]+)/([^/.]+)$ index.php?module=$1&url=$2 [QSA,NC]
RewriteRule ([^/.]+)$ index.php?url=$1 [QSA,NC]
问题是
它总是重定向到/index.php
——我无法访问博客
如何使规则不被覆盖?您缺少规则上的
^
起始锚点,因此它们与不应该匹配的URL匹配:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RULES FOR BLOG
RewriteRule ^blog/(.+)$ ./src/components/blog/index.php?url=$1 [L,QSA,NC]
# RULES FOR LANDING PAGE
RewriteRule ^([a-z\-_0-9]+)/([^/.]+)$ index.php?module=$1&url=$2 [QSA,NC]
RewriteRule ^([^/.]+)$ index.php?url=$1 [QSA,NC]