htaccess:如何从网址中获取cpanel用户名并重定向

时间:2014-01-26 04:47:02

标签: .htaccess

我有以下htaccess行...

RewriteRule ^([a-zA-Z0-9]+)?$ index.php?p1=$1 [L]
RewriteRule ^~([a-zA-Z0-9]+)/([a-zA-Z0-9]+)?$ ~$1/index.php?p1=$2 [L]

第一行工作正常,第二行根本不起作用......

第一行是这样做的.... domain.com/about - > domain.com/index.php?p1=about

我正在尝试用第二行... 如果网址是server1.domain.com/~username/about .... 我需要它翻译成server1.domain.com/~username/index.php?p1=about

基本上,检测是否有〜

我正在尝试编写代码以允许主机名/ ~username

的开发URL

现在,当尝试使用该代码访问网站时,它显示绿色的apache 404找不到页面。

如果您需要更多信息,请与我们联系

2 个答案:

答案 0 :(得分:1)

切换规则的顺序并添加RewriteBase

RewriteBase /

RewriteRule ^~([a-zA-Z0-9]+)/([a-zA-Z0-9]+)?$ ~$1/index.php?p1=$2 [L]
RewriteRule ^([a-zA-Z0-9]+)?$ index.php?p1=$1 [L]

您需要确保在.htaccess的网页请求和domain.com的网页上触发此server1.domain.com文件。

此外,如果您在任何子目录中有.htaccess个文件(根据您的问题描述,您不应该这样做),您必须相应地修改这些文件,但我们需要更多信息。

答案 1 :(得分:1)

您需要将此规则放在httpd.conf

RewriteEngine On

RewriteRule ^/?(~[a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ /$1/index.php?p1=$2 [L,QSA]

并确保在httpd.conf

中取消注释此行
LoadModule userdir_module modules/mod_userdir.so

然后确保index.php

下直接存在~username/