2014-05-07 81 views
2

我的htaccess出現問題。我想添加一個尾部的斜槓到我的網址。我目前正在本地開發。因此,這裏的htaccess的:添加尾部斜槓和重定向後htaccess無限循環301

Options +FollowSymlinks 
RewriteEngine On 

#RewriteBase 
RewriteBase /balade-gourmande 

DirectoryIndex index.php 

# Add ending slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ %{REQUEST_URI}/ [R=301,L] 


# Main pages 
RewriteRule ^(.*)/(.*)/$    $2.php [L] 
RewriteRule ^(.*)/$     $1.php [L] 

正如你所看到的,我有很多其他的網站在我的本地(爲什麼我有一個rewritebase)。我所有的.php文件都在「balade-gourmande」目錄中。 我在balade-gourmande文件夾中有一個index.php和一個yes.php文件。

如果我嘗試:

本地主機/ balade-美食店/ - >這沒關係,我的土地上的index.php

本地主機/ balade-美食店/是 - >這沒關係,我的土地上是的。 PHP

本地主機/ balade-美食店/是/ - >這沒關係,我降落在yes.php

的問題是,如果我進入一些錯誤,例如: 本地主機/ balade-美食店/不管 它給我a:localhost/balade-gourmande /無論如何。 php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php/ 與無限循環的錯誤...

有人可以幫助我,如果你需要更多的信息,我會盡我所能。

Thx!

**編輯: 這裏是位於根htaccess的,不是我的 「balade-美食店/」:

Options +FollowSymlinks 
RewriteEngine On 

#RewriteBase 

DirectoryIndex index.php 

# Error 
ErrorDocument 404 '/errorhandler.php' 

# Add ending slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ %{REQUEST_URI}/ [R=301,L] 


# Page principales 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 

回答

0

用這個替換您的2條規則# Main pages部分:

DirectoryIndex index.php 
ErrorDocument 404 /balade-gourmande/errorhandler.php 
Options +FollowSymlinks -MultiViews 
RewriteEngine On 

# Add ending slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s/+.*?[^/][\s?] 
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L] 

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

似乎沒有工作,得到了「對象沒有找到,錯誤404」 –

+0

這是從我的生活網站完全工作的規則。確保它放在根目錄下.htaccess不在子目錄內。 – anubhava

+0

你好anubhava,好吧,如果你是在一個真實的網站上,但正如我所說,它是在我的本地機器上,我希望它能工作。 –

0

htaccess的

# ---------------------------------------------------------------------- 
# Start rewrite engine 
# ---------------------------------------------------------------------- 

# Turning on the rewrite engine is necessary for the following rules and features. 
# FollowSymLinks must be enabled for this to work. 

<IfModule mod_rewrite.c> 
# Make sure directory listing is disabled 
Options +FollowSymLinks -Indexes 
RewriteEngine on 

# Send request via index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 


RewriteRule ^(.*)$ index.php/$1 [L] 



</IfModule> 

希望它可以幫助你,我從未有過與它的錯誤