2016-03-02 72 views
3

我試圖弄清楚如何讓子文件夾「管理員」在根目錄中工作的相同的東西,問題是我不知道該怎麼做。htaccess子文件夾重寫規則(漂亮的網址)

目前我有:

RewriteEngine On 
RewriteBase/

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

#/
RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$ 
RewriteRule ^(.+[^/])$ /$1/ [R=301] 

現在,它的工作原理是: http://example.com/page翻譯成http://example.com/?arg=page

我想什麼,除了做的是這樣的: http://example.com/admin/page轉化爲http://example.com/admin/?arg=page

我根本不知道如何做到這一點,有人可以幫助我嗎?

感謝

+0

你可以節省自己很多的麻煩[ slim](http://www.slimframework.com/)或[klein](https://github.com/chriso/klein.php) – birdspider

回答

3

您可以使用這些規則適當RewriteBase

RewriteEngine On 
RewriteBase /admin/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE] 

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

我在管理文件夾中創建了帶有您數據的.htaccess,導致http:/ /example.com/a dmin ////////////////////// – user1085907

+0

清除瀏覽器緩存後試試我更新的答案 – anubhava

1

或者只是添加使用路由-lib的像

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

在底部的相同文件不工作:( – user1085907

+0

什麼不工作?這是正確的規則。你在admin/index.php中有index.php嗎?把var_dump($ _ GET ['arg'])放在那裏,你應該可以看到它 –

+0

問題是我在根文件夾上使用相同的東西,所以我從admin重定向到根文件夾,它使用arg =/admin/page代替示例。 com/admin /?arg =第 – user1085907