【问题标题】:Problem with Rewriting URL [htaccess file]重写 URL 的问题 [htaccess 文件]
【发布时间】:2018-10-12 17:40:46
【问题描述】:

为了去掉尾部斜线,去掉“.php”和用“.php”重定向到删除版本的请求,我从网上收集了一些代码。然后我尝试添加一个规则,将文件从“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

谁能帮我编辑这个并说出问题所在??

【问题讨论】:

    标签: .htaccess url url-rewriting


    【解决方案1】:

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

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

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

    当您确定它工作正常时,将 302(临时)重定向更改为 301(永久)

    【讨论】:

    • 是的,它有效,但我希望“/filename”加载“/proto/filename”的内容
    • 伙计,我测试了正确的编辑版本,是的,它正在工作(它实际上是重定向),但我希望“/filename”请求将“/proto/filename.php”加载为自己的。
    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多