【发布时间】:2012-04-03 13:03:06
【问题描述】:
我遇到了这个 .htaccess 的问题
RewriteCond %{HTTP_HOST} appname.domain.com
RewriteCond %{REQUEST_URI} !appname/
RewriteRule ^(.*)$ /appname/$1 [L]
在文档根目录(不是真正的根文档,假设是一个 v-domain 文件夹)我有一个名为“appname”的文件夹。在 appname.domain.com 上,一切正常。现在我的问题是当我想做这样的事情时
http://appname.domain.com/somefolder
我不希望 url 被重写 appname.domain.com/appname/somefolder 在网址栏中。 有什么帮助吗?
更新: 在文档根目录中我有
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^v-domain/
RewriteRule ^(.*)$ /v-domain/$1 [L]
在 v 域中
RewriteEngine On
RewriteBase /v-domain/
RewriteCond %{HTTP_HOST} appname.domain.com
RewriteCond %{REQUEST_URI} !appname/
RewriteRule ^(.*)$ /appname/$1 [L]
RewriteCond %{HTTP_HOST} appname.domain.com
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^appname/(.+)$ http://appname.domain.com/$1/ [R=301,L]
###################
RewriteCond %{HTTP_HOST} appname2.domain.com
RewriteCond %{REQUEST_URI} !appname2/
RewriteRule ^(.*)$ /appname2/$1 [L]
RewriteCond %{HTTP_HOST} appname2.domain.com
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^appname2/(.+)$ http://appname2.domain.com/$1/ [R=301,L]
【问题讨论】:
-
当我将这些规则放在我的 .htaccess 文件中时,它们似乎像您预期的那样工作。
-
尝试在您的子域文件夹中创建一个包含索引的目录,然后尝试访问该路径。您将看到 url 以“appname.domain.com/appname/somefolder”的丑陋方式重写
标签: apache .htaccess mod-rewrite url-rewriting subdomain