【问题标题】:Using mod-Rewrite with 5 pages (wildcard sub-domain)使用 5 个页面的 mod-Rewrite(通配符子域)
【发布时间】:2013-01-30 00:56:45
【问题描述】:

假设我有 5 页(index.phpabout.phpportfolio.phpgallery.phpcontact.php)。

假设 id 是1

原来的网址是:

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

现在,我想把它改成:

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

是否可以使用 mod-rewrite ?如果我在index.php 页面中,如果可以进行mod-rewrite,<a href="" > 是什么about.php

非常感谢 :D 非常感谢你的帮助 :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 文件放在页面所在的目录中。

【问题讨论】:

    标签: php .htaccess mod-rewrite subdomain wildcard


    【解决方案1】:

    通过httpd.conf启用mod_rewrite和.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>

    【讨论】:

    • id变了怎么办?假设它更改为2。以及如何重写子域1.domain.com?感谢您的回答:D
    • 哦,没有意识到您想要在1.domain.com 中重写 URL,现在查看编辑后的答案。如果您的 id 发生变化,那么您只需要在 RewriteRule 行上方进行更改。
    • 它可以工作,但是如果用户只是在浏览器 url 框中输入http://www.1.domain.com,如何使about.php 成为默认登录页面?非常感谢,不知道它只需要 6 行代码就可以工作:D。再次感谢。但是你能帮我设置默认登陆页面吗:D
    • 要将/1.domain.com/about设为默认页面,您可以使用我上面编辑部分的代码。
    • 抱歉,我找不到是哪一个。我仍然是 mod-rewrite 的新手:D
    【解决方案2】:

    您需要更改 .htaccess 文件。编写下面的代码,它将隐藏文件的扩展名。

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

    然后,您将在锚链接中提供 URL,例如 /index 等。

    干杯。

    【讨论】:

    • 谢谢,我现在试试,子域1.domain.com怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多