首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相对路径的mod_rewrite

具有相对路径的mod_rewrite
EN

Stack Overflow用户
提问于 2015-10-13 08:22:44
回答 1查看 31关注 0票数 2

下面的.htaccess在本地环境中运行良好。它位于http://myexample.com/subdirectory-1/subdirectory-2/。不过,我希望它也能在我的has服务器上工作,这显然有一个不同的领域。有人能帮助调整下面的代码使其在任何域上工作吗?

代码语言:javascript
复制
Options +FollowSymlinks
RewriteEngine On

# If cookie 'de'
RewriteCond %{HTTP_COOKIE} de [NC]
RewriteRule ^$ http://myexample.com/subdirectory-1/subdirectory-2/de [R=301]

# If cookie 'en'
RewriteCond %{HTTP_COOKIE} en [NC]
RewriteRule ^$ http://myexample.com/subdirectory-1/subdirectory-2/en [R=301]

# If browser language 'de'
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://myexample.com/subdirectory-1/subdirectory-2/de [R=301]

# Else
RewriteRule ^$ http://myexample.com/subdirectory-1/subdirectory-2/en [R=301]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 08:35:39

您可以在本地主机和活动服务器上使用动态RewriteBase并使用相同的规则集:

代码语言:javascript
复制
RewriteEngine On

# generate rewritebase and store in BASE env variable
RewriteCond $0#%{REQUEST_URI} ^([^#]*)#(.*)\1$
RewriteRule ^.*$ - [E=BASE:%2]

# If cookie 'en' or 'de'
RewriteCond %{HTTP_COOKIE} (en|de) [NC]
RewriteRule ^$ %{ENV:BASE}%1 [L,R=301]

# If browser language 'de'
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ %{ENV:BASE}de [R=301]

# Else
RewriteRule ^$ %{ENV:BASE}en [L,R=301]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33097627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档