【问题标题】:Rewriting urls on my website to make it look cleaner [duplicate]在我的网站上重写网址以使其看起来更干净[重复]
【发布时间】:2013-01-23 08:50:19
【问题描述】:

好的,所以我有一个网站,我想将此网址 mywebsite.com/news1.php 更改为 mywebsite.com/news.php?id=news1

我很确定我需要使用 .htaccess 文件中的 Mod_Rewrite 来执行此操作。但是怎么做呢?

【问题讨论】:

  • 您的网站当前设置为 mywebsite.com/news1.php 还是 mywebsite.com/news.php?id=news1?
  • 作为 mywebsite.com/news1.php

标签: php mod-rewrite


【解决方案1】:

mywebsite.com/news1.php改写为mywebsite.com/news.php?id=news1,我建议:

RewriteRule ^([a-z0-9]+).php$ news.php?id=$1

请注意,我没有包括OptionsRewriteEngine On——只有重写规则。相应地编辑您自己的代码。

【讨论】:

  • @user2051894 这意味着news.php 不存在。您是否创建/上传了一个名为 news.php 的文件?
  • 哦,我没用,谢谢:D
  • 感谢您的帮助,我是否也可以阻止 news1 和 news2 php 文件,以便他们只能使用 news.php?id=news1 格式访问它?
  • 有了重写规则,news1.php 文件将永远不会被直接命中。 url 将始终被重写为使用news.php
【解决方案2】:

只需创建.htaccess 文件并填写以下内容

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteBase /

RewriteRule ^news/([0-9]+)$  /news.php?id=$1 [QSA,L,NC]

【讨论】:

  • 这不是请求的 url 结构。
  • @showdev 你什么意思?
  • OP 要求将mywebsite.com/news1.php 重写为mywebsite.com/news.php?id=news1。不是mywebsite.com/news/1/
  • @showdev 能解决问题吗? :) 我太菜鸟了
  • @PHP NooB 您的答案将news/3 重写为/news.php?id=3。 OP 要求将news1.php 重写为news.php?id=news1。看出区别了吗?
【解决方案3】:

我不记得如何使用 .htaccess 来做到这一点,但使用 php 代码真的很简单:

您的news.php 文件:

<?php
$id = $_GET['id'];
if ($id){include($id.".php");}
?>

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 2011-06-06
    • 2012-02-29
    • 1970-01-01
    • 2016-04-25
    • 2014-11-15
    • 1970-01-01
    • 2018-10-18
    • 2020-03-16
    相关资源
    最近更新 更多