为区分大小写的文件编写.htaccess文件

时间:2013-08-11 22:42:14

标签: css .htaccess

我今天刚刚推出了我的新网站,我遇到了一些.htaccess文件问题。我认为在将网站推出现场之前我已经解决了所有问题,但显然不是。

网站:http://OliverCrow.com/

我的.htaccess文件目前看起来像这样:

ErrorDocument 400 /errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

Options -Indexes

DirectoryIndex index.php /errors/404.html

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ /%1 [R=301,L]

我真的不知道这有什么作用,但我在网上得到了大部分内容,而且似乎有效。

我遇到的问题是,例如,如果我输入“OliverCrow.com/About”,一切正常,但如果我输入“OliverCrow.com/about”或“OliverCrow.com/About/”或者“OliverCrow.com/about/”一切都出错了,似乎CSS由于某种原因没有加载,我想这可能是使用.htaccess文件修复的,虽然我不知道怎么做。

1 个答案:

答案 0 :(得分:0)

我先说一下:我认为你不应该使用.htaccess来解决这个问题。当你已经拥有一个运行你网站的更大的PHP代码库时,.htaccess会不必要地复杂化。

现在继续。您的.htaccess文件很复杂且臃肿。你打开你的重写引擎两次。我刚刚完成了一个更大的PHP项目,我在.htaccess中唯一拥有的是:

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

这会给你$ _GET ['url'],你可以摆弄。然后你可以使用这样的东西:

if (isset($_GET['url']) && !empty($_GET['url'])) {
    $url = $_GET['url'];
    unset($_GET['url']);
    $v = explode('/', $url);

    $lowerCaseAction = strtolower($v[0]);
}

然后$ lowerCaseAction将是“约”或类似的东西。但这一切都取决于您的PHP代码。现在给你一个更精确的解决方案有点困难。