重写URL [htaccess文件]时出现问题

时间:2018-10-12 17:40:47

标签: .htaccess url url-rewriting

对于删除尾部斜杠,删除“ .php”以及使用“ .php”重定向到删除版本的请求,我从Internet收集了一些代码。然后,我试图添加一条规则,该规则会将文件从“ proto”文件夹重写为不带“ / proto /”的URL。

例如-从“ http://example.com/proto/filename.php”到“ http://example.com/filename(.php)

但是实际上,它没有用。这里是整个代码

# Was Requested By Host
php_value display_errors 1

# Some Spooky Scary Settings
Options -Indexes
RewriteEngine On
RewriteBase /

# Proto-File Requested Case
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)\.php$ /proto/$1 [NC,L]

# Slash-Trail Requested Case
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [NC,L,R=301]

# .PHP Requested Case
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [NC,L,R=301]

# Without .PHP Requested Case
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [NC,L]

# Error Pages
ErrorDocument 500 /modules/errors/500.php
ErrorDocument 404 /modules/errors/404.php
ErrorDocument 403 /modules/errors/403.php

有人可以帮助我进行编辑并说出什么问题吗?

1 个答案:

答案 0 :(得分:0)

在现有规则之前尝试以下操作:

RewriteRule ^proto/(.*) /$1 [R=302,L]

这应将* /prono/filename重定向到/filename

在确定重定向正常后,将302(临时)重定向更改为301(永久)