在.htaccess中为URL重写添加自定义重写规则的位置

时间:2015-05-19 13:01:28

标签: php .htaccess mod-rewrite url-rewriting

我有一个<div class="video-header" style="margin-left:50px;"> <div class="span8" style="padding-left: 15px; padding-bottom: 0px; display:block; text-overflow:ellipsis; white-space:nowrap; color:#353535; overflow:hidden; width:100%;font-size:15px;"> <?php echo ' <marquee LOOP=1 BEHAVIOR=SLIDE>' . stripslashes(_cut($video->title, 280)); ?> - <?php echo time_ago($video->date) . '</marquee>' ?> </div> ,其中包含以下规则:

.htaccess

我想添加新规则,让我将包含大写字母的URL重写为全部小写。我需要将以下规则添加到<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

.htaccess

这样一来,PHP脚本RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} [A-Z] RewriteCond %{REQUEST_FILENAME} !-s RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L] 就会重写包含大写字母的URL。我正在使用该脚本,因为我无法访问服务器配置文件。

Simon Holywell link

在博客文章中提出了这种方法

问题在于我无法让它发挥作用。我尝试在初始规则之后添加它,在它们之前以及在rewrite-strtolower.php标记内添加它。这在任何配置中都不起作用。

我应该如何添加这些新规则以便读取和执行它们?

1 个答案:

答案 0 :(得分:1)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>