Htaccess重定向和PHP代码正在创建多个虚拟目录

时间:2015-08-05 16:23:57

标签: php .htaccess url clean-urls

我正在尝试在usl的末尾创建一个没有.html的干净网址,而不是它会有一个尾部斜杠。例如: -

mydomain.com/webpage.html

相反,我正在寻找: -

mydomain.com/webpage /

另外我要做的是将该链接发送到另一个php页面并在/ echo'd之后得到标题,所以它是这样的: -

mydomain.com/webpage /

'网页'

我有2个php文件,一个是index.php文件,另一个是action.php文件,其中url的结尾我们回应了。

以下是我的index.php文件的代码: -

<html lang="en-US">
<head>  
</head>
<body>
    <center>
        <h2>This is a sample menu</h2>
        <P>
            <li><a href="test">Test</a></li>
            <li><a href="bandai">Bandai</a></li>
            <li><a href="bowen-studios">Bowen Studios</a></li>
            <li><a href="cs-moore">CS Moore</a></li>
            <li><a href="dark-horse">Dark Horse</a></li>
            <li><a href="dc-direct">DC Direct</a></li>
        </center>
    </body>
</html> 

以下是我的action.php文件的代码: -

<html lang="en-US">
<head>  
</head>
<body>
    <center>
        <h2>This is a sample menu</h2>
        <P>
            <?php
                $url = $_SERVER['REQUEST_URI'];
                $lastSegment = basename(parse_url($url, PHP_URL_PATH));
                $lastSegment = str_replace("-", " ", $lastSegment);
                $lastSegment = ucwords ($lastSegment);
                echo $lastSegment;
            ?>
            <P>
                <li><a href="index.php">Home</a></li>
            </center>
        </body>
    </html>     

以下是我的.htaccess文件的代码: -

RewriteEngine On
RewriteBase /  
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ action.php?category=$1

在htaccess中,我试图在url的末尾强制使用尾部斜杠。如果我从index.php菜单中单击一个链接,那么它将在action.php文件中进行paser并回显该单词,但是当我单击home时它会生成另一个目录,如果我点击另一个链接也会创建另一个目录网址和它不断建设和建设。我想要它做的是将mack返回到index.php文件或该目录中的任何其他静态.php文件,而不是在单击链接时继续创建虚拟目录。

正在发生的事情的例子: -

mydomain.com/test/index.php/bandai/index.php/bowen-studios /

我希望实现的是当您单击Home链接时,您将被带回主页面或任何其他php静态页面,而不是每次单击链接时都连续构建虚拟子目录。

提前感谢您的帮助:)

0 个答案:

没有答案