2013-02-14 48 views
3

假設我有5頁(index.php,about.php,portfolio.php,gallery.php,contact.php)。使用5頁的mod-Rewrite(通配符子域)

假設ID爲1

原始URL是:

www.domain.com/folder/index.php?id=1www.domain.com/folder/about.php?id=1 等等...

現在,我想將其更改爲:

1.domain.com/index1.domain.com/about1.domain.com/portfolio1.domain.com/gallery1.domain.com/contact

mod-rewrite有可能嗎?如果我在index.php頁面,那麼<a href="" >如果mod-rewrite可能會轉到about.php

非常感謝你:DI感謝您的幫助:d

編輯

還有一兩件事,我的通配符子域文件夾是public_html/folder/

該解決方案通過Anubhava

使用子域代碼編輯:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

# EDIT BY ANUBHAVA: to make http://1.domain.com/ load /about as default page 
# Replace /about with any other page you want as default page 
RewriteCond %{HTTP_HOST} ^1\.(domain\.com$ [NC] 
RewriteRule ^$ /about [L] 

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$ [NC] 
RewriteRule ^(index|about|portfolio|gallery|contact)/?$ /$1.php?id=%2 [L,NC,QSA] 

確保您的通配符子域目錄是網頁所在的位置。同時將你的.htaccess文件放在頁面所在的目錄中。

回答

1

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

# EDIT: to make http://1.domain.com/ load /about 
RewriteCond %{HTTP_HOST} ^1\.(domain\.com$ [NC] 
RewriteRule ^$ /about [L] 

RewriteCond %{HTTP_HOST} ^1\.(domain\.com$ [NC] 
RewriteRule ^(index|about|portfolio|gallery|contact)/?$ http://www.%1/folder/$1.php?id=1 [R=302,L,NC,QSA] 

一旦到位創造HREF鏈接是這樣的:

<a href="http://1.domain.com/about">About Us</a><a href="http://1.domain.com/contact">Contact Us</a>

+0

如果id改變了怎麼辦?假設它變成了'2'。以及如何重寫子域'1.domain.com'?謝謝你的回答:D – 2013-02-14 09:26:03

+0

哦,沒有意識到你想要在'1.domain.com'中重寫URL,現在請看編輯答案。如果你的ID改變了,那麼你只需要改變RewriteRule線。 – anubhava 2013-02-14 09:33:31

+0

我現在試試看:D謝謝:D – 2013-02-14 09:36:48

0

您需要在.htaccess文件中進行更改。寫下面的代碼,它會隱藏文件的擴展名。

Options +FollowSymlinks 
    RewriteEngine on 
    RewriteRule ^([a-zA-Z])\$ $1.php [NC] 

然後,你會給錨鏈接中的URL/index等等。

乾杯。

+0

謝謝,我現在就試試看,子域'1.domain.com'怎麼樣? – 2013-02-14 09:27:24