我正在尝试使用.htaccess来更改网址,并且还包含带有php的网页
old:http://website.com?page=test
<?php include 'pages/'. $_GET['page'] . '.php'; ?>
我不知道从哪里开始.htaccess但是任何帮助都会很棒,谢谢:]
答案 0 :(得分:0)
<?php include 'pages/'. $_GET['page'] . '.php'; ?>
单独对黑客友好。您应该首先将选项限制为允许的文件。
即在内部点击/index.php并预设一系列有效选项。那说,
根据文件的数量,预设硬编码可能是您的最佳选择。
我相信你的意思是mod_rewrite。 http://httpd.apache.org/docs/current/rewrite/remapping.html
添加到/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^page=test$ [NC]
RewriteRule . /test [NC,L,R=301]
</IfModule>
或更具动态性
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^page=(.*)$ [NC]
RewriteRule . /%1/ [NC,L,R=301]
</IfModule>
我最好的建议是内部将所有内容发送到/index.php然后通过一些php解析/验证,发送到有效选项的开关()和安全默认值:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>
答案 1 :(得分:0)
试试这个,用户应该看到http://domain.com/thepage
,服务器会将请求理解为http://domain.com/?page=thepage
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)$ ?page=$1 [NC,L]
</IfModule>