【发布时间】:2014-04-27 12:32:45
【问题描述】:
我没有找到导致这个错误的规则,我的 .htaccess 是:
RewriteEngine on
Options -Multiviews
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^ru\/index\.php$ "http\:\/\/www\.example\.com\/ru\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^en\/index\.php$ "http\:\/\/www\.example\.com\/en\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^it\/index\.php$ "http\:\/\/www\.example\.com\/it\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^fr\/index\.php$ "http\:\/\/www\.example\.com\/fr\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^de\/index\.php$ "http\:\/\/www\.example\.com\/de\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^uk\/index\.php$ "http\:\/\/www\.example\.com\/uk\/" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^es\/index\.php$ "http\:\/\/www\.example\.com\/es\/" [R=301,L]
RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule \.php$ - [L,R=404,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]
ErrorDocument 404 /en/404.php
ErrorDocument 403 /error_page.html
ErrorDocument 500 /error_page.html
当我尝试打开不存在的页面时 - 它给了我 404 错误,但如果我将“/”添加到现有页面 - 内部服务器错误 + 错误打开 /error_page.html 文件...为什么?
例如:
http://www.example.com/en/cinque-terre-beaches - real page
http://www.example.com/en/cinque-terre-beachesfdsfs/ - 404
http://www.example.com/en/cinque-terre-beaches/ - 500
谢谢!
【问题讨论】:
标签: regex apache .htaccess mod-rewrite web