Apache .htaccess mod_使用动态文件夹重写

Apache .htaccess mod_使用动态文件夹重写,apache,mod-rewrite,Apache,Mod Rewrite,我已经试了一段时间了,nut就是无法开始工作: RewriteRule ^([^])/([^])\.php$ /$1.php [L,QSA] 我有一个网站: www.mysite.com/dummyfolder/file.php 我希望它实际加载: www.mysite.com/file.php 仅供参考-dummyfolder是动态的,因此会发生更改 更复杂的是,我希望能够在某些文件夹上忽略这一点,例如能够访问:www.mysite.com/acutalfolder/file.php。acu

我已经试了一段时间了,nut就是无法开始工作:

RewriteRule ^([^])/([^])\.php$ /$1.php [L,QSA]
我有一个网站: www.mysite.com/dummyfolder/file.php

我希望它实际加载:

www.mysite.com/file.php

仅供参考-dummyfolder是动态的,因此会发生更改

更复杂的是,我希望能够在某些文件夹上忽略这一点,例如能够访问:www.mysite.com/acutalfolder/file.php。acutalfolder存在且不更改其名称的位置

非常感谢-这真的让我陷入了困境,就是想不出来

Ansari,感谢您的回答和解答,但我需要更正我的实际文件夹声明:

我的实际文件夹位于此处:

www.mysite.com/acutalfolder/file.php 
但我想在URL中显示如下:

www.mysite.com/dummyfolder/acutalfolder/file.php 
如果我使用此选项(如果我使用的是actualfolder,则尝试忽略):

转到实际的文件夹地址可以很好地工作,但是原始的重写页面不再工作。你知道我哪里打错了吗


在安萨里的帮助后更新。现在,它可以很好地与以下代码配合使用:

RewriteCond %{REQUEST_URI} ^/([^/]+)/(actualfolder/.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]


RewriteCond %{REQUEST_URI} ^/(?!actualfolder)([^/]+)/(.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]
RewriteCond %{REQUEST_URI} ^/([^/]+)/(actualfolder/.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]


RewriteCond %{REQUEST_URI} ^/(?!actualfolder)([^/]+)/(.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]
非常感谢……

试试这个:

RewriteRule ^([^/]+)/([^/]+)\.php$ /$2.php [L,QSA]
至于当actualfolder存在时,您不需要为此做任何事情,除非您在actualfolder中的另一个.htaccess文件中进行重写

在操作后编辑重新回答问题:

RewriteCond %{REQUEST_URI} ^/([^/]+)/(actualfolder/.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]

RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]

在安萨里的帮助后更新。现在,它可以很好地与以下代码配合使用:

RewriteCond %{REQUEST_URI} ^/([^/]+)/(actualfolder/.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]


RewriteCond %{REQUEST_URI} ^/(?!actualfolder)([^/]+)/(.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]
RewriteCond %{REQUEST_URI} ^/([^/]+)/(actualfolder/.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]


RewriteCond %{REQUEST_URI} ^/(?!actualfolder)([^/]+)/(.*\.php)$
RewriteCond %{DOCUMENT_ROOT}/%2 -f
RewriteRule .* %2 [L,QSA]

非常感谢…

如果我忽略了您发布的原始重写规则,那么实际文件夹现在可以工作了,但dummyfolder不能。它仍然是一个或另一个。我甚至在%2后面添加了[L],没有任何乐趣。只是更新了规则-您只需要编辑语句后面的3行。忽略我给你的第一条规则。只是再试一次,实际的球员不想在mo打球。我非常感谢你的帮助。不幸的是,仍然没有。我已经更新了我的.htaccess文件,dummyfolder仍在否决actualfolder路径。希望这可以解释否决的原因:我知道问题的原因,因为两个区域中都存在相同的文件物理文件!例如,物理文件是:/register.php和/actualfolder/register.php