Apache Mod 重写对我不起作用,在 url 中使用 (-) 时?
我尝试访问页面
www.example.com/products/ipod/white-ipod-8gb/12345678
这不起作用,我如何编辑 .htaccess
文件?
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^products/([^-]*)/([^-]*)/([^-]*)$ /products.php?produucts_name=$1&products_des=$2&products_id=$3 [L]
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
Options -indexes
最佳答案
那是因为您在正则表达式中使用了 [^-]
。使用此代码:
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
Options -indexes
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^products/([^/]+)/([^/]+)/([^/]*)$ /products.php?produucts_name=$1&products_des=$2&products_id=$3 [L]
关于php - Apache Mod 重写对我不起作用 当在 url 中使用 (-) 时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706766/