我想找到一个RewriteRule
来做到这一点:
mysite.net/jqMAS/
或mysite.net/jqMAS
=> mysite.net/index.php?id=jqMAS
我使用了这样的.htaccess
文件:
RewriteEngine On
RewriteRule ^(.*) index.php?id=$1
但不幸的是,它没有用(可能 mysite.net/index.php 本身被重定向到 mysite.net/index.php?index.php 等等?):调用mysite.net/jqMAS
会产生500 Internal Server Error
。
我们应该使用哪些RewriteRule
进行此类网址缩短?
以下是index.php
页面(我没有提到标题)的内容:
<body>
Bonjour <?php echo $_GET['id']; ?>
</body>
答案 0 :(得分:1)
请尝试以下.htaccess文件,因为它是在我自己的网站上成功使用的设置。
# Enable the rewriting engine.
RewriteEngine On
# Change requests for a shorter URL
# Requires one or more characters to follow the domain name to be redirected
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?id=$1 [L]
答案 1 :(得分:1)
您需要RewriteCond
来停止重写真实文件和目录:
RewriteEngine On
# if request is not for a directory
RewriteCond %{REQUEST_FILENAME} !-d
# if request is not for a file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?id=$1 [L,QSA]
答案 2 :(得分:1)
有2个htaccess文件: 将htaccess文件保存在应用程序文件夹中: 拒绝所有人。
将以下代码粘贴到应用程序文件夹外的htaccess文件中:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
这对我来说很完美。