我正在使用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]
但是这个重写规则不起作用。 所以请帮助我如何制作简短的网址。
答案 0 :(得分:2)
确认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
重写的网址: http://www.example.com/events/text-first
更新了500内部服务器错误
您的代码保证会生成500内部服务器错误,因为它会导致无限循环。原因是您匹配的URI模式是:^ events /([^ /] *)$
在重写之前和之后匹配您的网址。一旦达到最大允许内部重写限制,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]
答案 1 :(得分:1)
试试这段代码:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
在.htaccess文件中添加此内容
答案 2 :(得分:0)
您可以看到有很多方法可以实现这一目标。
另外
RewriteEngine On
RewriteRule ^events/([^/]*)\.html$ /events/landing_event.php?url=$1 [L]
会做这个工作。基本上,您的项目网址的全部范围如何?
您喜欢打印参数吗?如果是,有时也是名称或值?
答案 3 :(得分:0)
较新版本的apache要求您更改/etc/apache2/apache2.conf上的AllowOverride
来自
AllowOverride None
到
AllowOverride All