gpt4 book ai didi

apache - .htaccess 中用于 index.php 查询参数的 URL RewriteRule

转载 作者:行者123 更新时间:2023-12-02 04:31:10 25 4
gpt4 key购买 nike

示例 URL:-

  • www.domain.com/index.php?bob
  • www.domain.com/index.php?jane
  • www.domain.com/index.php?fred

需要重写:-

  • www.domain.com/bob
  • www.domain.com/jane
  • www.domain.com/fred

现在已经尝试了很多变体,但我能得到的最接近的是:-

  • www.domain.com/?bob
  • www.domain.com/?jane
  • www.domain.com/?fred

.htaccess 中的以下内容实现了这一点...

RewriteRule ^(.*)$ index.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

请有人指出我需要修改什么才能将其放入垃圾箱? URL 中的(问号)?

编辑

刚刚注意到,自从应用 anubhava 给出的答案以来例如,下面的 robots.txt 不会解析为 .txt 文件,而只是显示主页。

.htaccess如下:-

RewriteEngine On

RewriteBase /
RewriteCond %{THE_REQUEST} \s/+index\.php\?([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L]

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#pos1
RewriteRule ^([^/]+)/?$ index.php?$1 [L,QSA] <--

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

#pos2

如果我在 pos1 中添加 <-- 行,robots.txt URL 将返回 404 页面未找到错误。

如果我在 pos2 中添加 <-- 行,robots.txt URL 仅显示主页。

编辑2

与此同时,我通过在 Rewrite Base/ 下添加以下内容,从重写中排除了 robots.txt:-

RewriteRule ^robots.txt - [L]

最佳答案

您可以使用此代码:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+index\.php\?([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?$1 [L,QSA]

关于apache - .htaccess 中用于 index.php 查询参数的 URL RewriteRule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com