Using mod-Rewrite with 5 pages (wildcard sub-domain)

与世无争的帅哥 提交于 2019-12-23 20:52:17

问题


Let's say I got 5 pages (index.php, about.php, portfolio.php, gallery.php, contact.php).

Let's say the id is 1.

The original url is :

www.domain.com/folder/index.php?id=1, www.domain.com/folder/about.php?id=1 and so on...

Now, I want to change it to :

1.domain.com/index, 1.domain.com/about, 1.domain.com/portfolio, 1.domain.com/gallery, 1.domain.com/contact

Is it possible with mod-rewrite ? And if I'm in the index.php page, whats the <a href="" > that goes to about.php if the mod-rewrite is possible?

Thank you very much :D I appreciate your help :D

EDIT

One more thing, My wildcard subdomain folder is public_html/folder/

The Solution By Anubhava

Edited with subdomain codes :

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]

Make sure your wildcard subdomain directory is where the pages are. Also put your .htaccess file in the directory where the pages are.


回答1:


Enable mod_rewrite and .htaccess through httpd.conf and then put this code in your .htaccess under DOCUMENT_ROOT directory:

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]

Once that is in place create href links like this:

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




回答2:


You need to change in the .htaccess file. write the below code in that it will hide the extension of the file.

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

And after that you will give the URL in anchor link like /index and so on.

Cheers.



来源:https://stackoverflow.com/questions/14871176/using-mod-rewrite-with-5-pages-wildcard-sub-domain

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!