[英]URL rewrite rule is not working in php
我正在使用 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]
重寫規則 ^([a-zA-Z0-9-/]+)/$ events/landing_event.php?url=$1 [L]
但是這個重寫規則不起作用。 所以請幫助我如何制作短網址。
在確保RewriteEngine Enabled
和On
后使用此源
RewriteEngine On
RewriteRule ^events/([^/]*)$ /events/landing_event.php?url=$1 [L]
原文網址: http : //www.example.com/events/landing_event.php? url= text-first
重寫后的 URL: 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]
試試這個代碼:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
將此添加到您的 .htaccess 文件中
你可以看到有很多方法可以實現這個目標。
還有
RewriteEngine On
RewriteRule ^events/([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
會做的工作。 所以基本上,你的項目 url 的完整范圍是什么樣的?
比如你總是想打印參數嗎? 如果是,有時也是名稱還是值?
較新版本的 apache 要求您更改 /etc/apache2/apache2.conf 上的 AllowOverride
來自
AllowOverride None
到
AllowOverride All
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.