0

我目前在我的网站上遇到了问题。如果有人输入http://mysite.com/index.php,它可以正常工作并按应有的方式显示 index.php。但是,如果有人输入http://mysite.com/index.php/,index.php 会丢失大部分图像,现在充当文件夹,即使它不是。这发生在我所有的 .php 文件上。

但是,在其他站点上,不会发生此问题。我一直在考虑使用这个 htaccess 代码:

# Remove garbage info after .php
RewriteRule ^([^.]+\.php)[/.] http://www.example.com/$1 [R=301,L]

我的问题基本上是......这个问题的最佳解决方案是什么?另外,如果我使用我上面提到的 thae htaccess RewriteRule,像 /test.php?id=5 这样的页面会被剥离到只是 /test.php (基本上删除 .php 之后的所有内容)?

谢谢,
马克

4

1 回答 1

0

处理此问题的最佳方法是为您的网站创建一个入口点。

因此,在您的 .htaccess 中,您可以编写:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

现在您将始终输入 index.php 并从那里您可以使用 url 做您喜欢的事情:

$url = rtrim( $url, '/' );
$request = explode( '/', $url );

看看我的教程/博客

于 2012-09-03T12:12:04.357 回答