The*_*erk 5 subdomain .htaccess mod-rewrite rewrite url-rewriting
我试图以下列方式使用.htaccess重定向.我不是那么熟悉.htaccess,所以我不确定它是否可以完成.另外,我不知道我打算如何遵循SEO的最佳实践.
www.domain.com > domain.com 301
ks.domain.com > kansas.domain.com 301
ia.domain.com > iowa.domain.com 301
domain.com/sites > domain.com 301
domain.com/sites/iowa > iowa.domain.com 301
nonexistent.domain.com > domain.com 302
domain.com/sites/nonexistent > domain.com 302
Run Code Online (Sandbox Code Playgroud)
我最大的问题是如果我能检测到不存在的子域并重定向.我很想知道上述所有内容是如何完成的.
首先,*只有在您的Web主机允许的情况下,才需要通过创建名称为子域的子域来添加通配符子域.这必须在你的.htaccess,试着测试它是否有效:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule ^(.*)$ http://domain.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^ks\.domain\.com
RewriteRule ^(.*)$ http://kansas.domain.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^ia\.domain\.com
RewriteRule ^(.*)$ http://iowa.domain.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/?$
RewriteRule ^(.*) / [R=301]
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/iowa/?$
RewriteRule ^(.*) http://iowa.domain.com/ [R=301]
RewriteCond %{HTTP_HOST} ([a-z0-9-]+)\.domain\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) http://domain.com/ [R=302]
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/([a-z0-9-_]+)/?
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*) http://domain.com/ [R=302]
Run Code Online (Sandbox Code Playgroud)
只是-f用来测试所请求的文件是否存在并且是否是常规文件(-s如果存在且文件大小大于0)并-d测试它是否存在并且是目录.
| 归档时间: |
|
| 查看次数: |
2830 次 |
| 最近记录: |