卡在.htaccess中更改文件网址

时间:2014-03-25 05:19:28

标签: php .htaccess mod-rewrite url-rewriting rewrite

我是.htaccess文件的新手,所以我想更改我的每个文件不同的URL第一个默认我使用它的工作只有1个文件

RewriteRule ^([a-zA-Z0-9-/]+).html$ xrl.php?xrl=$1

然后我更改了我的contactus.php文件网址,然后我从Google下面执行此操作

RewriteRule ^Contact-us$ contact.php [L] 

我尝试了一些方法,但我尝试了整个网站不起作用。我如何根据需要更改每个文件的不同URL。

2 个答案:

答案 0 :(得分:0)

尝试使用此代码隐藏.php

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

OR

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

参考链接

Link 1

Link 2

Link 3

答案 1 :(得分:0)

我们可以使用.htaccess文件重写网址。但在.htaccess文件中写入内容之前,我们需要验证我们使用的是哪种服务器。在这种情况下,您可以使用apache服务器或Nginx服务器。您只需添加

即可轻松查看
<?php phpinfo(); ?>

在php页面中。

案例1:Apache服务器:

确保在apache服务器中启用了mod_rewrite模块。这可以通过检查phpinfo包含的页面来识别。

用于网址重写的常用方法如下

<强> RewriteEngine叙述

这对任何apache服务器都是必需的。这用于启用重写引擎。在某些情况下,默认情况下应该打开。确保在htaccess文件之前必须强制使用以下代码

RewriteEngine On

重写规则

在某些情况下,您可能只有几页,您可以在.htaccess文件中指定网站中的每个页面。在这种情况下,您可以使用这些重写 例如

RewriteRule ^ article / used / to / be / here.php $ / article / now / lives / here / [R = 301,L]

假设您必须像这些

重写网址
http://en.wikipedia.org/wiki/url_rewriting

您应该在.htaccess文件中写下类似的内容

RewriteEngine On
RewriteRule   ^wiki/(.+)$   w/index.php?title=$1   [L]

但是页面的实际实现将像这些

http://en.wikipedia.org/w/index.php?title=url_rewriting

<强>的RewriteCond

这可以用于根据某些条件重写某些URL。假设您需要使用您的网站名称添加或删除www,并在某些条件下重定向到某些页面,例如&#34; url不可用或错误消息&#34;

示例:

RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/.*$ [NC] 

您可以在这里进一步参考

Introduction to url rewriting

Rewrite with examples

案例2:nginx服务器

在nginx服务器上启用模块HttpRewriteModule 使用位置根据nginx设置重写您的网址

示例

    location / {
    root   /path/to/drupal;
    index  index.php index.html;
 
    try_files $uri $uri/ @rewrite;
}
 
location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
}