【发布时间】:2012-12-06 11:24:51
【问题描述】:
我有这个重写条件:
RewriteCond %{REQUEST_URI} !.*\.(css|js|php|html|png|jpg|gif)|notes|messages|/delete/|/achors_data/|/composer/|/pagination/|/mom_mp3/|/swf/|/js/|/stories/|/wall/|/news_feed/|/notifications/|opencv|hdflvplayer|hdflvplayer2|videojs|ffmpeg|mediaplayer|uploadify|/v/|/video/|/options/|show_msg_dialogs|facedetector|classes|right_column_modules|functions|maurice|pokes|opticrop|geoip_city|/autocomplete/|chrono|ajax|editprofile|tag|Svetlozar.NET
它必须与在根目录上创建的每个新目录一起维护,因为我有一个重写规则,它将所有内容从不存在的目录(root/mydirectory/ 和 root/mydirectory_b/)重定向到 root/specialdirectory/ 上的内容除外条件是根目录中的任何现有目录,不需要应用转到特殊目录的规则。
我的问题是是否可以编写 rewritecond 或采取其他方法来完成相同的任务,而不必手动编写在根目录中创建的 .htaccess 中的每个新目录。
所以这是带有 cond 的重写规则,它使所有内容(root/anydir/)都转到 根/主
RewriteCond %{REQUEST_URI} !.*\.(css|js|php|html|png|jpg|gif)|notes|messages|/delete/|/search/|/buttons/|/achors_data/|/composer/|/pagination/|/mom_mp3/|/swf/|/js/|/stories/|/wall/|/news_feed/|/notifications/|opencv|hdflvplayer|hdflvplayer2|videojs|ffmpeg|mediaplayer|uploadify|/v/|/video/|/options/|show_msg_dialogs|facedetector|classes|right_column_modules|functions|maurice|pokes|opticrop|lists|geoip_city|/autocomplete/|chrono|ajax|editprofile|tag|Svetlozar.NET
RewriteRule ^([A-Za-z-0-9-_.]+)?$ master/$2
然后有一个问题,只有在根目录之外的目录friends应该执行某个操作anything/friends go to anything/view_friends.php
我想要的是能够编写一个考虑到根目录中每个现有目录的 RewriteCond - 一个通配符。
所以我最终会在没有维护的情况下编写如下内容
RewriteCond %{REQUEST_URI} ! * existing directories - except just one
代替:
RewriteCond %{REQUEST_URI} !.*\.(css|js|php|html|png|jpg|gif)|pokes|opticrop|notes|/delete/|/search/|/buttons/|/achors_data/|/composer/|/pagination/|/mom_mp3/|/swf/|/js/|/stories/|/wall/|/news_feed/|/notifications/|opencv|hdflvplayer|hdflvplayer2|videojs|ffmpeg|mediaplayer|uploadify|/v/|/video/|/options/|show_msg_dialogs|facedetector|classes|right_column_modules|functions|maurice|lists|geoip_city|/autocomplete/|chrono|ajax|editprofile|tag|Svetlozar.NET
RewriteRule ^([A-Za-z-0-9-_.]+)/friends $1/view_friends.php
目录必须作为 rewritecond 应用的真实目录存在,因为我将幻影目录用于第一个 rewriterule。
【问题讨论】:
-
你能显示其他现有的重定向规则吗?
标签: .htaccess mod-rewrite url-rewriting