使用 .htaccess 重写 URL,查询字符串作为文件名

发布于 2024-12-08 16:45:03 字数 258 浏览 0 评论 0原文

如果我的网址是 http://www.xyz.com/index.php?view=abc 那么它应该打开 http://www.xyz.com/abc.php

我应该在 .htaccess 中写什么? ?

提前致谢。

If my URL is http://www.xyz.com/index.php?view=abc
then it should open
http://www.xyz.com/abc.php

What should I write in .htaccess??

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅冕 2024-12-15 16:45:04

如果我的网址是http://www.xyz.com/index.php? view=abc 那么它应该打开 http://www.xyz.com/abc.php< /a>


你不需要 .htaccess ,只需放入 index.php

$view = $_GET['view'];
if (strpos($view, '/') === false && $view != "index" && file_exists("$view.php"))
  require "$view.php";

确保根目录中没有任何其他易受攻击的 php 文件(但我建议使用其他/更好的技术来检查 url 中的用户输入)。


如果您想以相反的方式重写,您的 .htaccess 可能类似于以下内容:

RewriteEngine on

RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^([a-z]+).php$  /index.php?view=$1  [L]

If my URL is http://www.xyz.com/index.php?view=abc then it should open http://www.xyz.com/abc.php

You don't need .htaccess for that, simply put in index.php

$view = $_GET['view'];
if (strpos($view, '/') === false && $view != "index" && file_exists("$view.php"))
  require "$view.php";

Be sure not to have any other vulnerable php files in your root directory (but I'd recommend using other/better techniques to check the user input from the url).


If you wanted to have the rewriting the other way round, your .htaccess could look similar to this:

RewriteEngine on

RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^([a-z]+).php$  /index.php?view=$1  [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文