2016-08-16 63 views
0

這個問題可能會重複,但我搜索了很多,無法找到答案。所以我使用htaccess文件來重寫,並且我想使用URL顯示相同的頁面:http://localhost/assoc/abouthttp://localhost/assoc/about/重寫規則啓用訓練斜線和沒有斜線

我通過「include_once」調用頁面內容,頁面位於目錄/ www/assoc/astc /中。當我錄像例如http://localhost/assoc/about它可以使用,但是使用訓練斜線時,它會重定向到404頁面。

這是我的htaccess。謝謝。

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 

RewriteRule ([a-z]+)$ astc/accueil.php?page=$1 [L] 

RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L] 

RewriteRule ([a-z]+)/([A-Za-z0-9_]+)$ astc/accueil.php?page=$1&id=$2 [L] 

RewriteRule ^/(.*)$ astc/accueil.php?page=$1&id=$2 [R=301,L] 

ErrorDocument 404 http://localhost/assoc/page-non-trouvee 
+0

這個.htaccess放在'/ www/assoc/astc /'目錄下嗎? – anubhava

+0

您的'.htaccess'文件格式非常糟糕,幾乎沒有任何意義。 '.htaccess'不支持引導斜槓,頂部的條件只適用於第一條規則,之後沒有任何規則。另外,最後一條規則只有一個參數'(。*)',但試圖獲取兩個數據('$ 1'和'$ 2')。我強烈建議你閱讀文檔和各種可用的指南,否則你將繼續遇到問題而不知道事情是如何工作的。 –

+0

我會仔細閱讀文檔。謝謝。 – arshie92

回答

0

除非你已經擁有了它,嘗試添加下面一行到你的htaccess

DirectorySlash On 
+0

我加了。但它仍然不起作用。 – arshie92

+0

我傾向於使用處女htacces來測試一個特定的項目。你有很多redir的東西坐在那裏,這可能會干擾某些點。如果它不打破你的主機,首先嚐試一個乾淨的htaccess斜槓的事情,然後添加一個項目一次,以確保你知道它在哪裏得到越野車。祝你好運。 – 2016-08-16 12:50:15

+0

我繼續找到一種方法。謝謝。 – arshie92

1

有幾個問題。這條線

RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L] 

重定向所有請求到astc/accueil.php?page=

我也建議remap instead of redirect your requests

^/(.*)$正則表達式捕獲所有的請求,因此不可能被評估的剩餘重寫規則。

Try adding rewrite log to debug your regex

+0

我會檢查並嘗試解決問題。我還沒有閱讀足夠的關於重寫的文檔,所以我錯過了很多東西。我會回覆。謝謝。 – arshie92

0

所以最後它的工作與此內容:

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 

RewriteRule ([a-z]+)(/?)$ astc/accueil.php?page=$1 [L] 

RewriteRule ([a-z]+)/([A-Za-z0-9_]+)(/?)$ astc/accueil.php?page=$1&id=$2 [L] 

ErrorDocument 404 http://localhost/assoc/page-non-trouvee 

感謝大家。