2016-04-20 54 views
0

引導我對本地主機XAMPP網站與virtualname mysite.com需要mod_rewrite的

我試圖讓網址下面的代碼,但它不工作簡單。

RewriteEngine On 

RewriteRule ^$  index.php 
RewriteRule ^home$ index.php 

上面的代碼工作,但它的硬編碼。因此,如果我用^.*$替換家中的網站資產會丟失。 CSS等不起作用。

我想要的是一個規則,只是給了我一切後,所以我可以在後端使用這些和顯示特定頁面的一切。

mysite.com -gets- 
mysite.com/ -gets-/
mysite.com/home -gets- home 
mysite.com/products/abc -gets- products/abc 
mysite.com/products/used/xyz -gets- products/used/xyz 

請指導

回答

1
Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !=/index.php 
RewriteRule .* /index.php 

以上代碼給出了網址index.php文件的一切。

如果你想使用它的不同之處在於每個URL不與 「PNG」, 「JPG」, 「CSS」, 「JS」,結束了 「GIF」 你可以使用:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{REQUEST_URI} !.*\.png$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.css$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC] 
RewriteCond %{REQUEST_URI} !.*\.js$ [NC] 
RewriteRule .* /index.php 
+0

感謝4複製我們的代碼的答覆。當我去'mysite.com/products/abc'時,css停止工作。 – Bsienn

+0

你試過第二個代碼嗎?它應該工作。 –

+0

都嘗試過。資產不起作用,對這個PLZ的任何想法?如果在'mysite.com/abc /'之後出現斜線,則斜線會破壞資產 – Bsienn

0

要得到這個特定的uri,你實際上需要使用php來獲得它,而不是隻有一個mod_rewrite - 注意:你必須設置mod重寫以獲得正確的格式。

如果想在陣列中的URI可以使用mixed parse_url (string $url [, int $component = -1 ])

從PHP手冊http://php.net/manual/en/function.parse-url.php

此功能解析一個URL,並返回包含任何URL的各種組件的一個關聯數組存在。

這個函數並不是要驗證給定的URL,它只是把它分解成上面列出的部分。部分網址也被接受,parse_url()會盡力解析它們。

,或者如果你想整個事情用PHP服務器變量$_SERVER['REQUEST_URI']

相關問題