如何使用.htaccess将除了index.php之外的所有内容转换为参数

时间:2010-11-14 01:02:45

标签: .htaccess

有没有办法使用.htaccess如下

mydomain.com 重定向到 mydomain.com/index.php

mydomain.com/everything除了index.php 重定向到 mydomain.com/index.php?u=除index.php以外的所有内容

换句话说,将所有内容(目录,子目录,页面等)转换为简单的字符串参数,以将变量u传递给index.php

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将所有内容发送到index.php:

RewriteEngine On
RewriteCond %{REQUEST_URI} !index.php
RewriteRule (.*) index.php?u=$1 [QSA,L]

请注意,这也会将图像,css,javascript等请求发送到index.php。由于这可能不是你想要的,这个可能更合适:

RewriteEngine On
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?u=$1 [QSA,L]

这个会将对不存在的文件和目录的所有请求发送到index.php。请注意,这意味着您的htdocs文件夹中的任何内容都可以通过它的url访问。所以这将依赖你的htdocs文件夹大部分是空的。