如何在地址栏中重写 URL 而不改变实际 URL?

如何在地址栏中重写 URL 而不改变实际 URL?

我的网站面临 SEO 问题,因为我的 URL 是index.php

例如,当我尝试上传文件时,URL 如下:

http://niresh12495.com/index.php?app=downloads

当我尝试上传图像时,地址栏上的 URL 如下:

http://niresh12495.com/index.php?app=upload

是否可以在地址栏中伪造 URL,真实地址应该被隐藏

我需要如下 URL:

  • 对于第一个例子:http://niresh12495.com/app/downloads
  • 对于第二个示例:http://niresh12495.com/app/upload

还有另一个问题http://niresh12495.com/index.php没有重定向到http://niresh12495.com/

我尝试隐藏index.php,但在某些情况下 URL 后面会出现一个问号

一旦我完全修复了 URL,但问题是当我尝试发布主题时,URL 会被重定向niresh12495.com/index.php?到主页niresh12495.com

看起来参数正在传递index.php?我不完全确定这个问题。

答案1

试试这个代码:

# remove index.php
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=302,NC,NE]

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

RewriteRule ^app/([^/.]+)/?$ /index.php?app=$1 [L,QSA,NC]

相关内容