.htaccess尝试使用斜杠而不重定向404错误

时间:2013-12-14 22:09:38

标签: php .htaccess url-rewriting rewrite trailing-slash

我正在尝试阻止404错误并在使用mydomain.com/something

时重定向

它会抛出404错误,因为页面something.php不存在。我希望它提交到索引页面,以便我可以用PHP捕获值并在我的应用程序中使用它。我还希望将其与删除扩展名(.php)相结合,但仍然可以访问页面。例如,我希望能够输入mydomain.com/somect而不是mydomain.com/contact.php,但仍然能够使用mydomain.com/something并将其提交到索引页面,如果页面不存在的话。

希望有人可以帮助我,因为我尝试了很多不同的东西,似乎没有任何工作。我能得到的最接近的是使用以下htaccess代码:

DirectoryIndex index.php
Options +FollowSymLinks
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt|css|index|js|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ index.php?/$1 [L]

然而,似乎当文件不存在而我只想将值作为斜杠提交到索引页面时,它不起作用并且它会挂起并最终抛出404.

1 个答案:

答案 0 :(得分:0)

DOCUMENT_ROOT/.htaccess文件中试用此代码:

DirectoryIndex index.php
Options +FollowSymLinks
Options -MultiViews
RewriteEngine on
RewriteBase /

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]

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