php - Apache Mod 重写对我不起作用 当在 url 中使用 (-) 时?

标签 php regex apache .htaccess mod-rewrite

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/

相关文章:

php - mysqli_connect() : (HY000/2002): Can't connect to local MySQL server through socket

php - mod_rewrite规则

php - 主机名可以注入(inject)SQL吗?

php - 计算 Laravel 中的远程关系总数(急切加载?)

mysql - MYSQL 查询中的 REGEX 查找字符串

apache - 在 apache hadoop 中读取或复制到 hdfs 时出现校验和异常

php - 无法检索我的 php mysql 表单的值

PHP/Mysqli 插入 : Cannot pass parameter 2 by reference

java - 如何改进这个 Java 正则表达式?

javascript - 如何使用正则表达式来匹配所有可能包含停用词列表的句子?