使用简单的.htaccess重定向时遇到问题

时间:2010-08-25 14:58:43

标签: php apache url .htaccess redirect

我已经研究了一段时间,并尝试了很多我在网上看过的不同解决方案,似乎无法让它发挥作用。

我在www.mydomainname.com上有一个网站。我想处理所有页面请求的页面是www.mydomain.com/index.php。我还想将其设置为适用于我指向此代码库的任何其他域(使用通配符将是我认为的方法)。

因此,以下URL类型(或任何其他类型)应自动转到index.php,同时仍保留浏览器地址栏中的原始URL结构:

 www.mydomain.com/
 mydomain.com/
 www.mydomain.com/item/111
 www.mydomain.com/item/itemname/anothervariable/value
 www.mydomain.com/item/itemname/?variable=value

我正在使用PHP 5和最新版本的Apache并启用了mod_rewrite。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

每个.htaccess文件包含一次:

Options +FollowSymlinks
RewriteEngine on

RewriteRule (.*) index.php

如果您需要匹配网址中的信息,您可以修改您的RewriteRule以匹配旧网址的部分,或者只使用变量$1等来包含所有内容。例如,如果您希望将项目编号快速传递给index.php,则可以使用此规则:

RewriteRule item/(.*)$ index.php?item=$1

答案 1 :(得分:0)

简单:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !\.(jpg|gif|ico|png|bmp|css|js)$

RewriteRule .* index.php

答案 2 :(得分:0)

您可以使用以下RewriteRule

RewriteEngine On
RewriteRule ^(.*)$ /index.php?originalUrl=$1

未经测试,但它应该有效。然后,您还可以在'originalUrl'GET参数中使用原始URL进行进一步解析。