我已经在我的根目录中创建了.htaccess
来创建子域级别,假设它是sub.domain.ex
重定向到domain.ex/deb/
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} sub.domain.ex
RewriteCond %{REQUEST_URI} !deb/
RewriteRule ^(.*)$ /deb/$1 [L]
这很有效。
现在,我转到/deb/
并使用以下
.htaccess
RewriteEngine on
RewriteRule ^([^/]+)/ /deb.php?app=$1 [NC]
deb.php是一个打印参数“app”的文件。
它有效,但只有当我调用http://sub.domain.ex/something/
时(注意结尾处的斜线)。它只适用于最后的斜杠,如果我删除它,它不会,我希望它没有最后的斜线工作。
所以我将规则更改为^([^/]+)
,但现在我有500个Apache内部错误。
正则表达式教练是我的选择,也许我错过了一些东西。
感谢
更新
我疯了。 Mybe错误地将一个.htaccess放在root中用于创建第3个sublevel doman和另一个目录中的.htacces?因为我正在尝试一些技巧。 我使用这个规则
RewriteEngine on
RewriteRule ^([^/]+)/ deb.php?app=$1 [NC]
在/deb
目录的.htacces中,并创建一个print_r($_GET);
并调用index.php。因此,如果它在cydia sublvel的index.php上转发我并且没有使用/deb/deb.php,那么redirectory根本不起作用!
概括。
我的目标结构是:
/htdocs/ -> the root of the main domain level like www.example.com
---index.php -> home file of www.example.com
/htdocs/deb -> the root directory of the 3th sublevel domain (subdomain.example.com ->
---index.php
---deb.php
因此,3级域的.htaccess是/htdocs./htaccess,并且如前所述。 用于“美化”链接的另一个.htaccess位于/htdocs/deb/.htaccess中。当你去subdomain.domain.com/someText时我想要转换为deb.php吗?app = someText
现在我试着去subdomain.domain.com/deb.php....WTF !? deb.php位于/htdocs/deb/deb.php
家很清楚
答案 0 :(得分:2)
这对我来说很好,至少,假设我理解你想要的一切。
在/htdocs/.htaccess
:
RewriteEngine On
RewriteCond %{HTTP_HOST} =sub.domain.ex
RewriteCond %{REQUEST_URI} !^deb/
RewriteRule ^(.*)$ /deb/$1
在/htdocs/deb/.htaccess
:
RewriteEngine On
RewriteBase /deb/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ deb.php?app=$1
RewriteRule !^deb.php index.php
修改:我更新了第二个文件的内容以反映您的其他请求。如果您不希望他们转到/?
,则应移除sub.domain.ex/something/ -> deb.php?app=something
。
答案 1 :(得分:0)
我可能错了,但是在第二个.htaccess中你应该检查网址是否还没有用“/deb.php”重写
类似
RewriteCond %{REQUEST_URI} !deb\.php
RewriteRule ^([^/]+) /deb.php?app=$1 [NC]
答案 2 :(得分:0)
你应该重写规则
RewriteRule ^(.*)$ deb.php?app=$1 [L,QSA]
这是像Drupal这样的CMS中使用的常见模式
答案 3 :(得分:0)
我认为我的主人有某种解决方法。不可能。我尝试了所有类型的goo(用于regexcoach)来匹配正确的组,并且没有其他500错误apache。
使其工作的唯一方法是使用tu参数
使用此^app/([^/]+) /deb.php?app=$1
并使用sub.domain.com/app/nameTest
进行调用,这可以使用或不使用结束反斜杠。
你得到一些建议摆脱这个,请告诉我。
再见