标签: mod-rewrite

如何为简单的api创建mod重写规则

我想制作我的第一个api,但是我在设置网址时遇到了麻烦.api url在这里:

http://tools.fifaguide.com/api/
Run Code Online (Sandbox Code Playgroud)

例如,如果有人去:

http://tools.fifaguide.com/api/player/messi
Run Code Online (Sandbox Code Playgroud)

然后我需要加载这个页面:

http://tools.fifaguide.com/api/server.php
Run Code Online (Sandbox Code Playgroud)

我在.htaccess写什么?我应该把它放在哪里?

这就是我现在所拥有的:

RewriteEngine On
RewriteRule ^api http://tools.fifaguide.com/api/server.php
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情,htacces文件也在api文件夹中.任何帮助都会真的很难受!

php api rest mod-rewrite rewrite

0
推荐指数
1
解决办法
7675
查看次数

Apache htaccess规则优先级

我知道.htaccess规则是从上到下解析的,但是如果我的URL匹配两个规则将使用哪个规则以及为什么呢?

我有简单的规则

^(.*)$ index.php?pag=cms&title=$1
^store/(.*)$ index.php?pag=store&id=$1
Run Code Online (Sandbox Code Playgroud)

基本上任何URL都匹配第一个规则,那么其他URL会发生什么?

mod-rewrite

0
推荐指数
1
解决办法
3196
查看次数

htaccess 301重定向带参数的URL

我在我的htaccess文件中有以下内容,该文件采用如下网址:www.example.com/Page.php?id =关闭并将其转换为www.example.com/about.唯一的问题是,当我在htaccess中设置Redirect 301s时,旧的URL没有重定向到新的URL(我理解这是因为你不应该在基本的Redirect 301s中传递参数 - 我的基本重定向的例子)我试过下面).

Redirect 301 /Page.php?id=About http://www.example.com/about
Run Code Online (Sandbox Code Playgroud)

问题是新的URL不一定只是删除当前的id并用小写版本替换它.例如,我还想:

Redirect 301 /Page.php?id=Example http://www.example.com/example-page
Run Code Online (Sandbox Code Playgroud)

我想保留重写URL的当前功能,但也希望对旧URL的任何访问重定向到新URL(即更新Google索引).访问www.example.com/Page.php?id=About目前仍然可以使用,但会显示一个没有内容的页面.

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite redirect

0
推荐指数
1
解决办法
2万
查看次数

Apache重写规则不起作用

基本的重写规则不起作用,我不知道为什么.这是我的hanalulu.conf:

<VirtualHost *:80>

ServerName hanalulu.localhost
DocumentRoot /var/www/hanalulu/public
DirectoryIndex index.php

<Directory />
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

RewriteEngine on
RewriteRule ^a.html$ b.html

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我在hosts文件中添加了一个额外的行并通过后启用了该站点sudo a2ensite.重新启动的Web服务器:hanalulu.localhost/a.html请求a.html而不是b.html.

问题是什么?

apache mod-rewrite url-rewriting

0
推荐指数
1
解决办法
1万
查看次数

Wamp服务器出现500内部服务器错误

我使用php,slim和mysql创建了一个Web服务,但是当我尝试访问url时,它给了我"服务器遇到内部错误或配置错误,无法完成您的请求."

当我检查日志时,它给了我:

C:/wamp/www/task_manager/.htaccess:无效命令'.htaccess',可能拼写错误或由服务器配置中未包含的模块定义

我在网上检查了一些东西,我可以确保你安装并激活了rewrite_module(未在http.config中注释)

有谁知道如何解决这个问题?我会附上我的.htaccess的内容

.htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite wampserver

0
推荐指数
1
解决办法
2万
查看次数

当url以斜杠结尾时,htaccess rewriterule返回错误的参数

当url以斜杠结尾时,我对它返回错误参数的原因感到有点困惑.

htaccess的

RewriteRule ^account/dashboard/(.*)/(.*)$ ./account/index.php?page=dashboard&aid=$1&name=$2 [L,QSA] 
Run Code Online (Sandbox Code Playgroud)

当我执行 http://example.com/account/dashboard/65/blitzen12/

并在页面中我可以使用$_GET['aid]它返回65/blitzen12$_GET['name]返回空

但是当我blitzen12在url 的末尾删除斜杠时,它会正确返回,这是65blitzen12.

谁能向我解释我做错了什么?

php apache .htaccess mod-rewrite

0
推荐指数
1
解决办法
276
查看次数

php redirect vs htaccess哪个更好?

我希望访问http://www.domain.com/user/xyz.php的网站访问者重定向到https://www.domain.com/user/xyz.php.

即.如果他们在/ user /他们在安全的位置.所以必须重定向到https

我的问题不是具体如何实现这一点,但哪种方法更好?

我的直觉是说我应该用a .htaccess Rewrite rule 但我也考虑过这样的事情:

    <?php
    if (!$_SERVER['HTTPS'] && strstr('user', $_SERVER['REQUEST_URI'])){
        header('location:https://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
    }
Run Code Online (Sandbox Code Playgroud)

我想听听有关效率和安全性以及其他考虑因素的意见.

php apache .htaccess mod-rewrite redirect

0
推荐指数
1
解决办法
356
查看次数

具有Page Not Found问题的Htaccess重写规则

关于重写规则的htaccess问题

我的文件夹中有3个文件

create.php
index.html
index.php
Run Code Online (Sandbox Code Playgroud)

我把它作为重写规则的.htaccess

DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/

RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]


RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)

问题是我想访问该网站

http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)

但它告诉我

The requested URL /admin/create.php was not found on this server.
Run Code Online (Sandbox Code Playgroud)

我的.htaccess有什么问题,重写规则主要是为了让index.php进行查询发送,我希望我的create.php可以通过路径访问

 http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)

谢谢 !!

更新了.htaccess

DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d …
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite url-rewriting

0
推荐指数
1
解决办法
6116
查看次数

Yii url重写删除index.php

我正在努力使网址重写,我想删除index.php,我已经做了一些研究,并找到了在线文档.

这是我到目前为止所做的,我取消了我的main.php urlmaneger,我有以下内容

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScripName'=>false,
            'rules'=>array(
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
Run Code Online (Sandbox Code Playgroud)

我有.htaccess,它在我的yiiApplication中被激活了

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
Run Code Online (Sandbox Code Playgroud)

现在,当我启动应用程序时,它给了我以下错误.

**Property "CUrlManager.showScripName" is not defined.**
Run Code Online (Sandbox Code Playgroud)

我如何解决这个问题?我确实打开了我的Rewrite引擎,并且我的php日志或wamp服务器日志也没有错误.

我应该在项目中重写所有网址吗?

php .htaccess mod-rewrite url-rewriting yii

0
推荐指数
1
解决办法
271
查看次数

Mod_rewrite简单重定向

我是IHS的新手,我遇到了我需要重定向我主页的URL的 www.example.com/foo --> www.example.com/foo/bar问题,其中一些路径www.example.com/foo/somethingelse是正确的,我已经阅读了很多关于mod_rewrite的文章,讨论了很多更复杂的解决方案但是未能找到这样简单的解决方案.此外,我对这个正则表达式的事情感到非常困惑.

请帮忙,谢谢.

apache mod-rewrite redirect ibmhttpserver httpserver

0
推荐指数
1
解决办法
106
查看次数