2015-03-13 105 views
1

美好的一天! 我有我的根文件夾兩個腳本:htaccess重寫規則兩個腳本

/index.php 
/home.php 

兩者都接收得到的參數,並顯示不同的頁面,f.ex:

index.php?page=info 
home.php?page=about 

1)當我試圖用這個來做清潔URI :

RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 #working ok 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 #doesn't load css,js 

我發現了三條建議:將css,js文件夾的路徑應用到htaccess,使用標籤或使用絕對路徑。 我想知道是否有任何其他方式完全通過htaccess。或者是有可能改變的查詢字符串刪除「/」如果有一個f.ex方式: 我插入

example.org/info/ 

而且我的字符串自動變成只

example.org/info 

2)我的htaccess適用於index.php。我應該如何改變我的規則與home.php工作,如果有「USERHOME」在查詢字符串進行這樣的查詢可能:

example.org/home/about 

PS

RewriteRule ^home/([a-zA-Z0-9]+)$ home.php?page=$1 

工作我需要的方式,關於我的第二個問題。不過,我還沒有完成與CSS,JS加載的問題。任何提示請

+0

好的我認爲你的需求正在發生一些變化。 「userhome」到底是什麼以及它符合您的要求? – 2015-03-13 15:16:36

回答

0

處理CSS不加載的最佳方式是使用<base>標記。這樣你可以使用相對URL,它不會破壞你的規則。

這會在你的網站的head部分..

<base href="http://www.example.com/" /> 

您可以嘗試這些規則爲您您的要求。

#Redirect to home.php 
RewriteRule ^home/([a-zA-Z0-9]+)$ home.php?page=$1 [L] 
#Remove the trailing slash 
RewriteRule ^([a-zA-Z0-9]+)/$ /$1 [R=301,L] 
#Redirect to index.php 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [L] 
+0

你的答案的第一部分工作很好,謝謝。但是,我仍然有一些問題,第二部分。我做了一些編輯,所以我可能會迷惑你。所以,實際上。我需要將以下URI:「example.org/home/about」重寫爲:example.org/home.php?page=about。除了讓js,css工作。 – Sabine 2015-03-13 15:19:47

+0

我根據問題中更新的主頁鏈接編輯了規則。這應該適用於您的規則。 – 2015-03-13 15:24:49