htaccess将不存在的路径重定向到脚本

时间:2015-11-10 15:29:48

标签: regex apache .htaccess mod-rewrite

我遇到一个htaccess规则存在问题,如果有人使用特定语法调用不存在的网址,我需要这样做:

http://www.somesite.com/somefolder/somefolder/123456978/unexistant_folder_nor_file_2015

http://www.somesite.com/somefolder/somefolder/ 存在且 123456978 / unexistant_folder_nor_file_2015 不存在

调用的URL将传递给具有以下语法的脚本:

http://www.somesite.com/somefolder/somefolder/index.php?id=/12345678/unexistant_folder_nor_file_2015

(其中某些文件夹始终是具有相同名称的文件夹,例如test)

我尝试了以下代码:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^somefolder/([^/]+)/([^/]+)$ /somefolder/somefolder/index.php?id=$1 [L, NC]

但是没有用,有人可以给我一些建议来解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以在 /somefolder/somefolder/.htaccess

中使用此规则
RewriteEngine On
RewriteBase /somefolder/somefolder/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d+/.*)$ index.php?id=$1 [L,QSA]
相关问题