我正在使用一个.htaccess文件来指示一个目录的请求到一个自定义的PHP文件,提供有关该目录的信息(我希望浏览器显示的URL不会改变)。
这里是.htaccess文件的相关部分。
RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /myPHP.PHP?url=%{REQUEST_URI} [QSA,L]
http://domain.com/path/
但是,如果没有斜线,它不会
Nginx – Magento多个网站
禁止您无权访问/在此服务器上。 服务器无法读取htaccess文件,拒绝访问是安全的
mod_rewrite的部分url为GEtvariables
htaccess rewriterule和directoryindex
http://domain.com/path
该url(在浏览器中显示)变成:
http://localhost:8888/path/?url=/path
RewriteCond %{REQUEST_FILENAME} -D RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L]
但是这不适合我。
我怎么能.htaccess添加尾部的斜线,如果它被忽略,然后就像它已经在那里?
谢谢
更新:根据要求,这是整个事情。
<IfModule mod_rewrite.c> RewriteEngine On #force trailing slashes on real directories RewriteCond %{REQUEST_FILENAME} -D RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L] #use the directory viewer on directories without an index page RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /myPHP.PHP?url=%{REQUEST_URI} [QSA,L] </IfModule>
如何重新编写锚定cms的指令
用.htaccess中选定的查询string参数重写URL
.htacces-SetEnvIf转换为Nginx-fastcgi_param
使用HTTP_HOST来标识以前的主机名称
RewriteBase做什么以及如何使用它?
叹。
这一行:
RewriteCond %{REQUEST_FILENAME} -D
本来应该:
RewriteCond %{REQUEST_FILENAME} -d
不要打扰Mod重写,有一个指令
<Location /some/path> DirectorySlash On SetHandler some-handler </Location>
http://httpd.apache.org/docs/2.2/mod/mod_dir.html
你的意思是
RewriteRule ^(.*)$ $1/ [L]
代替?
我不知道你的方法。 我会尝试类似的
RewriteRule ^/(S+)/?$ /myPHP.PHP?url=$1
我以前用过这个重写,它工作:
RewriteEngine on RewriteCond %{HTTP_HOST} ^domain.com RewriteRule ^(.*)$ http://www.domain.com$1 RewriteRule ^/(S+)/?$ /myPHP.PHP?url=$1
请注意,我没有在第一条规则中包含结尾的斜杠。
另外,我建议你不要依赖.htaccess,除非绝对必要。 这是因为服务器会不断检查.htaccess文件。 改为使用httpd.conf文件意味着apache将只加载一次条件和规则。 至少我被建议这样做是因为这个。
尝试这个。 它会将尾部斜杠添加到没有结尾斜杠的目录请求。
<Ifmodulee mod_rewrite.c> RewriteEngine On #use the directory viewer on directories without an index page RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*?)/?$ /myPHP.PHP?url=$1/ [QSA,L] </Ifmodulee>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。