![如何在地址栏中重写 URL 而不改变实际 URL?](https://linux22.com/image/1397069/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%9C%B0%E5%9D%80%E6%A0%8F%E4%B8%AD%E9%87%8D%E5%86%99%20URL%20%E8%80%8C%E4%B8%8D%E6%94%B9%E5%8F%98%E5%AE%9E%E9%99%85%20URL%EF%BC%9F.png)
我的网站面临 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]