mod_rewrite - 将不存在的所有内容发送到index.php

时间:2011-10-10 14:06:09

标签: .htaccess mod-rewrite

我想让我的.htaccess文件重写index.php文件中不存在的任何内容。例如:www.example.com/category/subcategory/product1/将被重写为index.php?request=category/subcategory/product1

我想先检查目录是否存在,如果存在,请不要重写。我现在有类似的东西,但只需要知道如何将请求的URL放入PHP $_GET变量中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php [L]

高级感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

你快到了:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?request=$1 [L,QSA]

TBH,没有必要将请求的网址放入$_GET变量 - 您可以始终通过$_SERVER['REQUEST_URI']访问原始(请求的)网址 - 唯一的区别是REQUEST_URI将始终以前导斜杠开头(例如/category/subcategory/product1)。