RewriteRule ^([A-Za-z0-9'"%ãõáéíóúâêîôûàÁÃÕÁÉÍÓÚÂÊÎÔÛÀ\/\.\-]*)$ public_html/$1 [NC]
我在这里使用这个表达式,它工作得很好,但如果我把例如:htaccess的正则表达式下划线和空间行不通
RewriteRule ^([A-Za-z0-9 _'"%ãõáéíóúâêîôûàÁÃÕÁÉÍÓÚÂÊÎÔÛÀ\/\.\-]*)$ public_html/$1 [NC]
这在这里不起作用。由于空格和下划线,我想在正则表达式中包含空格和下划线,但它根本不起作用。我必须添加一些特别的东西吗?
,这也不起作用:
RewriteRule ^(.*)$ public_html/$1 [NC]
我希望能够键入的public_html文件夹中任何事情,开放的。
实施例,I型:www.mysite.com/site_1.php 然后它打开:www.mysite.com/public_html/site_1.php
这htaccess的表达被在HostGator的服务器使用测试Apache 2.2.17 ,我也在我的本地主机Apache 2.2.17中测试过,同样的情况发生。 。
的错误添加_和空间,或当给定*是这样的:
内部服务器错误
服务器遇到一个内部错误或配置错误, 无法完成您的请求。
请联系服务器管理员[email protected],并告知他们发生错误的时间,以及您可能已经完成的任何可能导致错误的事情 。
有关此错误的更多信息可能在服务器错误 日志中可用。
谢谢你们提前。
转义空格,否则Apache会将其视为正则表达式模式的结束。所以使它成为空间而不是空间。至于内部服务器错误,请查看服务器的错误日志。它将具体说明造成它的原因(可能是使重写过程的空格字符有语法错误)。 –
感谢您的回答,这有助于解决空间问题,但剩下的问题呢? *和下划线? – Grego
不要以为'_'是这些正则表达式中的一个metachar。但试着逃避它,看看会发生什么。使用'_'或'。*'时仍会出现内部错误?再次检查错误日志,看看它是不同的消息。 –