在目录中重命名的多个文件,需要htaccess规则来重定向

时间:2017-01-04 09:36:07

标签: apache .htaccess redirect mod-rewrite

.htaccess文件中是否可以重定向多个文件名,例如我使用的文件如下:

/publications/publications-1.php
/publications/publications-2.php
/publications/publications-3.php

我想将它们更改为新的文件名:

/publications/1.php
/publications/2.php
/publications/3.php

2 个答案:

答案 0 :(得分:0)

在您拥有php文件的目录中尝试这样,

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>3.2.4</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

答案 1 :(得分:0)

将htaccess文件添加到您的webroot目录并添加如下规则:

SELECT a FROM A a
WHERE NOT EXISTS (SELECT b FROM a.bs b WHERE b.id=:bId)

它将符合条件的任何请求映射到相应的php文件引擎。如果您需要重定向,请在规则中附加Options +FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^publications/(.*)\.php$ /publications-$1.php [L,QSA] </IfModule> ## Results # publications/data.php => publications-data.php 标志。

如果您需要更一般的规则来匹配第一个细分中的任何内容,请尝试以下方法:

R

最后要注意的一件事;确保启用了apache的重写模块并允许htaccess文件(httpd.conf中为RewriteRule ^(.*)/(.*)\.php$ /$1-$2.php [L,QSA] ## Results # foo/bar.php => foo-bar.php ):

AllowOverride All