首页 文章

URL重写规则在php中不起作用

提问于
浏览
1

我正在使用godaddy托管和插件域名 . 我想把我的长网址改为短网址 .

例如我的网址如下:www.example.com/events/landing_event.php?url = text-first

我想要关注网址:www.example.com/events/text-first

为此我在.htaccess文件中使用以下重写URL

RewriteRule ^([a-zA-Z0-9- /])$ events / landing_event.php?url = $ 1 [L] RewriteRule ^([a-zA-Z0-9- /])/ $ events / landing_event . php?url = $ 1 [L]

但是这个重写规则不起作用 . 所以请帮助我如何制作简短的网址 .

3 回答

  • 0

    确认 RewriteEngine EnabledOn 后使用此来源

    RewriteEngine On
    RewriteRule ^events/([^/]*)$ /events/landing_event.php?url=$1 [L]
    

    原始网址:http://www.example.com/events/landing_event.php?url=text-first

    重写的网址:http://www.example.com/events/text-first

    更新了500内部服务器错误

    您的代码保证会生成500内部服务器错误,因为它会导致无限循环 . 原因是您的匹配URI模式是:^ events /([^/] *)$在重写之前和之后匹配您的URL . 一旦达到最大允许内部重写限制,Apache就会抛出500内部服务器错误并退出 .

    将您的代码更改为此

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^events/([^/]*)$ /events/landing_event.php?url=$1 [L,QSA,NC]
    
  • 2

    试试这段代码:

    RewriteEngine On
    RewriteRule ^([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
    

    在.htaccess文件中添加它

  • 1

    您可以看到有很多方法可以实现这一目标 .

    RewriteEngine On
    RewriteRule ^events/([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
    

    会做的 . 基本上,您的项目网址的全部范围如何?

    你总是想打印参数吗?如果是的话,有时也是名称或 Value ?

相关问题