我已经对.htaccess重写函数进行了一些搜索,但我找不到任何带有html引用的示例。
我正在尝试从我的 example.com/products/category/ 链接重定向到另一个页面。这是我希望.htaccess文件重定向的链接:
<a href="example.com/products/category/?category=bathroom">
我想实现这种风格:
example.com/products/category/bathroom/
这是我的.htaccess ReWriteRule:
RewriteRule ^products/([A-Za-z0-9-]+)/?$ /products/category.php/?category=$1 [L] # Process category
请注意,我为两者使用了两个不同的 php 页面。页面类别.php和类别.php
我把它放在之后
RewriteEngine On
RewriteBase /
但它仍然不起作用..当我尝试某些组合时,唯一一次发生某些事情时,它抛回了内部服务器错误。我的正则表达式有问题还是我没有正确链接?
编辑:我正在使用wordpress,我忘了提到,对不起。
你需要
使用Redirect 301
RedirectMatch 301 ^example.com/products/category/?category= /example/home/page-category.php
或者,您可以改用mod_rewrite:
RewriteEngine On
RewriteRule ^example/products/category/?category= /example/home/page-category.php [L,R=301]
您可以对另一个文件执行相同的操作。
正如我从您的问题中了解到的那样,您需要在类别目录.htaccess文件中提供这样的东西
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) category.php?category=$1 [QSA]
现在任何不是目录或类别目录中的文件都将被重写,例如/category/bathroom 将被重写为(无需重定向)/category.php?category=bathroom