[英]Multiple rewrite rules in .htaccess not working
我正在尝试使用.htaccess进行漂亮的链接。 我是Apache的新手,无法真正弄清为什么它不起作用。
我有两个页面: single_picture.php
和single_video.php
两个页面都有两个参数:name和cat_id / category_id
这是两个示例: http : //www.unclelol.com/single_picture.php? name= Real-time- images-5& cat_id=13
http://www.unclelol.com/single_video.php?name=football%20fail&category_id=22
这是我的.htaccess
:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^pictures/([A-Za-z0-9\-_]+)/([A-Za-z0-9\-_]+)/?$ /single_picture.php?name=$2&cat_id=$1
RewriteRule ^videos/([A-Za-z0-9\-_]+)/([A-Za-z0-9\-_]+)/?$ /single_video.php?name=$2&category_id=$1
现在出于未知的原因。 图片的重写效果很好:
http://www.unclelol.com/pictures/13/Real-time-images-5/
但是视频重写会产生404错误:
http://www.unclelol.com/videos/22/football%20fail
任何帮助将不胜感激。
艾哈迈尔
将两个规则合并为一个:
RewriteRule ^(.+)s(?=/)/([^/]+)/([^/]+)/?$ /single_$1.php?name=$3&cat_id=$2 [NE,L]
另外,删除模式([A-Za-z0-9\\-_]+)
,该模式不适用于%20
就像您在视频网址中一样。 而是使用([^/]+)
匹配任何字符,直到到达/
为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.