我在.htaccess中使用此代码来重写我的网址,如下所示:
www.example.com/subcategory.php?subcat=my-test
至
www.example.com/my-test
.htaccess代码:
RewriteEngine on
RewriteCond $1 !^(subcategory\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ subcategory.php?subcat=$1 [L,QSA]
我的问题是每当我访问不属于我的subcategory.php文件的网址时,如contactus和aboutus,.htaccess文件会以某种方式将我带到subategory.php文件,这不是我想要的。我希望我的联系人可以通过contactus.php和aboutus与aboutus.php来处理。
我知道我的.htaccess文件有问题,但由于我不熟悉.htaccess编码,我无法自行修复。
任何建议都将不胜感激。
非常感谢!
答案 0 :(得分:2)
您正在重写对subcategory.php的所有请求。 .htaccess
无法判断/xxx
是子类别还是某个不同的页面,因此您可以将其重定向到其他不同的脚本。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
使用此代码段代替您的代码片段并将所有“路由”逻辑移至PHP。在PHP中,您可以找出/ xxx是子类别,联系页面,文章还是其他内容,并使用适合该类数据库记录的脚本。
您可以在$_SERVER['REQUEST_URI']
找到所请求的网址。