繁体   English   中英

.htaccess中的多个重写规则不起作用

[英]Multiple rewrite rules in .htaccess not working

我正在尝试使用.htaccess进行漂亮的链接。 我是Apache的新手,无法真正弄清为什么它不起作用。

我有两个页面: single_picture.phpsingle_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM