bra*_*ess 7 apache .htaccess routing wamp laravel
我试图在我的应用程序中实现静态和动态子域路由.它没有按预期工作.我在我的本地机器上使用WAMPServer.
routes.php文件
Route::get('/', 'WelcomeController@index');
Route::group(['domain' => 'api.letsplay.dev'], function () {
Route::group(['prefix' => 'v1'], function () {
Route::get('users', function () {
return "Success";
});
});
});
Run Code Online (Sandbox Code Playgroud)
php artisan route:list给出了这个
+------------------+----------+----------+------+----------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+------------------+----------+----------+------+----------------------------------------------+------------+
| | GET|HEAD | / | | App\Http\Controllers\WelcomeController@index | guest |
| api.letsplay.dev | GET|HEAD | v1/users | | Closure | |
+------------------+----------+----------+------+----------------------------------------------+------------+
Run Code Online (Sandbox Code Playgroud)
hosts文件有这个
127.0.0.1 localhost
127.0.0.1 hosp.dev
127.0.0.1 letsplay.dev
Run Code Online (Sandbox Code Playgroud)
我使用laravel框架提供的.htaccess文件而不做任何更改
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
的httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@letsplay.dev
DocumentRoot "c:/wamp/www/letsplay-web/public"
ServerName letsplay.dev
ErrorLog "logs/letsplay.dev-error.log"
CustomLog "logs/letsplay.dev-access.log" common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我试图letsplay.dev从浏览器中点击时,它按预期工作.但是在尝试击中时api.letsplay.dev/v1/users,我从ERR_ICANN_NAME_COLLISIONChrome中获得了以下错误!
帮助我理解我错过了什么!
小智 8
检查:icannwiki
.dev是新提议的gTLD之一.我们曾经在内部使用过.dev域名,但之后转移到.local以避免问题.
此外,正如chanafdo在他的评论中提到的,您不能在Windows主机文件中使用通配符.所以你必须指定每个子域.
并且通常应该避免在主机文件中使用相同IP地址的多行,只需将它们添加到同一行,用空格分隔:
127.0.0.1 localhost letsplay.dev api.letsplay.dev
Run Code Online (Sandbox Code Playgroud)
要在apache中启用通配符子域支持,只需指定
ServerAlias *.letsplay.dev
Run Code Online (Sandbox Code Playgroud)
在您的vhost配置中.
| 归档时间: |
|
| 查看次数: |
3821 次 |
| 最近记录: |