我有以下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找不到页面。
如果您需要更多信息,请与我们联系
答案 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/